Python列表list内建函数用法实例分析【insert、remove、index、pop等】

本文实例讲述了Python列表list内建函数用法。分享给大家供大家参考,具体如下:

#coding=utf8
'''''
标准类型函数:
cmp():进行序列比较的算法规则如下:
-----------------------------------------------------------------------------
1. 对两个列表的元素进行比较
2. 如果比较的元素是同类型的,则比较其值,返回结果
3. 如果两个元素的不是同一种类型,则检查它们是否是数字
  a. 如果是数字,执行必要的数字强制类型转换,然后比较。
  b. 如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")
  c. 否则,通过类型名字的字母顺序进行比较
4. 如果有一个列表首先到达末尾,则另一个长一点的列表"大"
5. 如果列表长度相同且所有元素都是相等的,那么两个序列就是相等的,返回一个0。
------------------------------------------------------------------------------
len():返回字符串的长度,就是字符串包含的字符个数。
对于列表或者元组来说,它会返回列表或者元组的元素个数。
max()和min():对于字符串操作,是获取字符串中最大和最小字符,
对于列表和元组,获取列表和元组中最大和最小元素。
混合对象的结构越复杂返回的结构准确性就越差。
enumerate()与zip():前者是输出列表的index和元素值;
后者等长的两个列表对应为的元素组合成一个元组,生成一个元组列表。
sum()和reduce():对数字列表进行求和。
list()与tuple()接受可迭代对象作为参数,并通过浅拷贝数据来创建一个新的列表或元组。
如果不考虑range()函数,python中没有特定用于列表的内建函数。
range()函数接受一个数值作为输入,输出一个符合标准的列表。
列表类型内建函数列表:
--------------------------------------------------------------------------------
list.append(obj)-------------------向列表中添加一个对象obj
list.count(obj)---------------------返回一个对象obj在列表中出现的次数
list.extend(seq)--------------------把序列seq的内容添加到列表中
list.index(obj,i=0,j=len(list))------返回list[k]==obj的k值,并且k的范围在
                            i<=k<J;否则引发ValueError异常。
list.insert(index,obj)---------------在索引量为index的位置插入对象obj。
list.pop(index=-1)-----------------删除并返回指定位置的对象,默认是最后一个对象
list.remove(obj)-------------------从列表中删除对象obj
list.reverse()-----------------------对列表进行倒序
list.sort(func=None,
key=None,reverse=False)--------以指定的方式排序列表中的成员,如果func和key参数指定,
                           则按照指定的方式比较各个元素,如果reverser标志被设置为True,
                           则列表以反序排列。
--------------------------------------------------------------------------------
'''
print "--------------调用cmp()函数-----------------"
#从第一个元素开始比较
#如果元素不相等,谁大列表就大
list1=["abcdef","sunny","windy"]
list2=["baby","godness",123456]
if cmp(list1,list2)<0:
  print list1
#从第一个元素开始比较
#如果元素不相等,谁大列表就大
list1=["zippo","sunny","windy"]
list2=["baby","godness",123456]
if cmp(list1,list2)>0:
  print list1
#顺序一致才能完全相等
#元素顺序影响比较结果
list1=[1,2,3,4,5,6,7]
list2=[1,2,3,4,5,6,7]
if cmp(list1,list2)==0:
  print list1
#元素个数不一致
#已有元素相等谁的元素多谁大
list1=[1,2,3,4,5]
list2=[1,2,3,4,5,6,7]
if cmp(list1,list2)<0:
  print list1
print "-----------------------------------------------"
print
print "--------------调用len()函数-----------------"
#获取元素列表长度
list1=["baby","godness",123456]
print len(list1)
print "-----------------------------------------------"
print
print "--------------调用max()与min()、sum()函数-----------------"
list1=["zippo","sunny","windy"]
list2=[1,2,3,4,5,6,7]
print "list2 max:",max(list2),"\t","list2 min:",min(list2)
print "list1 max:",max(list1),"\t","list1 min:",min(list1)
print "The list2 sum:",sum(list2)
print "-----------------------------------------------"
print
print "--------------调用enumerate()与zip()函数-----------------"
list1=["zippo","sunny","windy","one","two","god","witch"]
list2=[1,2,3,4,5,6,7]
#使用enumerate函数输出元素索引和元素值
for ind,var in enumerate(list1):
  print ind,"------->",var
#等长的两个列表对应为的元素组合成一个元组,生成一个元组列表
for l1,l2 in zip(list1,list2):
  print "(",l1,l2,")"
print "-----------------------------------------------"
print
print "--------------调用list()与tuple()函数-----------------"
list1=["zippo","sunny","windy","one","two","god","witch"]
list2=[1,2,3,4,5,6,7]
#调用list()函数
print type(list(list2))
#调用tuple()函数
print type(tuple(list1))
print "-----------------------------------------------"
print
print "--------------列表类型内建函数-------------------------"
list1=["zippo","sunny","windy","one","two","god","witch"]
list2=[1,2,3,4,5,6,7]
list3=list(list2*3)
print "copy list2 3 times to list3:",list3
#调用append()函数
list2.append(8)
print "add 8 to list2 with append():",list2
#调用count()函数
print "The 3 appear times of list3:",list3.count(3)
print "The windy appear times of list1:",list1.count("windy")
#调用extend()函数
list1.extend(list2)
print "add list2 to list1:",list1
list2.extend([12,1,6,45])
print "add [12,1,6,45] to list2:",list2
#调用index()函数
#设置查找范围是从第一个元素到最后一个元素
print "the index of one element in list1:",list1.index("one")
#设置查找范围是从第3个元素到最后一个元素
print " the index of god element in list1 :",list1.index("god",3)
#设置查找范围是从第3个元素到第五个元素
print " the index of two element in list1 :",list1.index("two",3,5)
#要查找的index不在所需范围内
#抛出ValueError异常
try:
  print list1.index("two",5)
except ValueError,v:
  print "The index is not range:",v
#调用insert()函数
#在指定位置插入对象
#指定位置之后的函数整体后移一位
list2.insert(1,[123,45])
print "insert [123,45] into list2 at index=1:",list2
list2.insert(0,"hello")
print "insert hello into list2 at index=0:",list2
#调用pop()函数
#删除并返回指定位置的对象
print "before calling pop(),the list2:",list2
#默认是最后一个对象
print "the last element of list2:",list2.pop()
print "after calling pop(),the list2:",list2
#删除并返回第三位置的元素
print "the third element of list2:",list2.pop(2)
print "after calling pop(),the list2:",list2
#调用remove()
#从列表中删除指定对象
print "before calling remove(),the list3:",list3
#删除list3从第一位到最后一位,第一次出现的7
list3.remove(7)
print "after calling remove(),the list3:",list3
#调用reverse()对列表逆序
print "before calling reverse():",list2
list2.reverse()
print "after calling reverse():",list2
#调用sort()队列排序
#不带有参数
list2.sort()
print "calling sort() without parameter:",list2
#对列表逆序
list2.sort(reverse=True)
print "calling sort() with parameter reverse=True:",list2
print "---------------------------------------------------------"
print

运行结果:

更多Python相关内容感兴趣的读者可查看本站专题:《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

时间: 2017-07-22

解决python文件字符串转列表时遇到空行的问题

文件内容如下: Alex 100000 Rain 80000 Egon 50000 Yuan 30000 #此处有一个空行! 现在看如何处理并转成列表! salary_info = open("salaryinfo.txt", "r+", encoding="UTF-8") salary_info_list = [] for line in salary_info.readlines(): if line == '\n': pass else:

Python列表删除的三种方法代码分享

1.使用del语句删除元素 >>> i1 = ["a",'b','c','d'] >>> del i1[0] >>> print(i1) ['b', 'c', 'd'] >>> del语句将值从列表中删除后,就再也无法访问它了. 2.使用pop()删除元素 pop()可删除列表末尾的元素,并让你能够接着使用它.食欲弹出(pop)源自这样的类比:列表就是一个栈,而删除列表末尾的元素相当于弹出栈顶元素. >>

Python简单删除列表中相同元素的方法示例

本文实例讲述了Python简单删除列表中相同元素的方法.分享给大家供大家参考,具体如下: 去除列表中重复的元素,非常简单,直接上代码: a = [11, 21, 3, 4, 3, 2, 5] b = list(set(a)) print(a) print(b) 运行结果: E:\Program\Python>d.py [11, 21, 3, 4, 3, 2, 5] [2, 3, 4, 5, 11, 21] 看到了吗,结果中确实没有了重复的元素.但是,同时,结果中的元素被按从小到大进行了排序! P

python 字符串转列表 list 出现\ufeff的解决方法

如下所示: #文件内容 lisi lock = open("lock_info.txt", "r+",encoding="utf-8") lock_line = lock.readline() lock_list = lock_line.split(",") print(lock_list) y = lock_line.encode('utf-8').decode('utf-8-sig') print(y) #打印结果如下 [

浅谈python for循环的巧妙运用(迭代、列表生成式)

介绍 我们可以通过for循环来迭代list.tuple.dict.set.字符串,dict比较特殊dict的存储不是连续的,所以迭代(遍历)出来的值的顺序也会发生变化. 迭代(遍历) #!/usr/bin/env python3 #-*- coding:utf-8 -*- vlist=['a','b','c'] vtuple=('a','b','c') vdict={'a': 1, 'b': 2, 'c': 3} vset={'a','b','c'} vstr='abc' for x in vl

python数据结构之列表和元组的详解

python数据结构之 列表和元组 序列:序列是一种数据结构,它包含的元素都进行了编号(从0开始).典型的序列包括列表.字符串和元组.其中,列表是可变的(可以进行修改),而元组和字符串是不可变的(一旦创建了就是固定的).序列中包含6种内建的序列,包括列表.元组.字符串.Unicode字符串.buffer对象.xrange对象. 列表的声明: mylist = [] 2.列表的操作: (1) 序列的分片: 用法:mylist[startIndex:endIndex:step] exam: myli

浅谈python中列表、字符串、字典的常用操作

列表操作如此下: a = ["haha","xixi","baba"] 增:a.append[gg] a.insert[1,gg] 在下标为1的地方,新增 gg 删:a.remove(haha) 删除列表中从左往右,第一个匹配到的 haha del a.[0] 删除下标为0 对应的值 a.pop(0) 括号里不写内容,默认删除最后一个,写了,就删除对应下标的内容 改:a.[0] = "gg" 查:a[0] a.index(&q

浅谈python中str字符串和unicode对象字符串的拼接问题

str字符串 s = '中文' # s: <type 'str'> s是个str对象,中文字符串.存储方式是字节码.字节码是怎么存的: 如果这行代码在python解释器中输入&运行,那么s的格式就是解释器的编码格式: 如果这行代码是在源码文件中写入.保存然后执行,那么解释器载入代码时就将s初始化为文件指定编码(比如py文件开头那行的utf-8): unicode对象字符串 unicode是一种编码标准,具体的实现可能是utf-8,utf-16,gbk等等,这就是中文字符串和unicod

浅谈Python中的字符串

可能大多数人在学习C语言的时候,最先接触的数据类型就是字符串,因为大多教程都是以"Hello world"这个程序作为入门程序,这个程序中要打印的"Hello world"就是字符串.如果你做过自然语言处理方面的研究,并且用Python去做过相关实验,你肯定会体会到Python在字符串处理方面相对于其他语言的明显优势之处.今天我们来了解一下Python中的字符串,看看它的用法. 一.Python中如何声明字符串 在Python中声明一个字符串通常有三种方法:在它的两

浅谈Python中列表生成式和生成器的区别

列表生成式语法: [x*x for x in range(0,10)] //列表生成式,这里是中括号 //结果 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] (x*x for x in range(0,10)) //生成器, 这里是小括号 //结果 <generator object <genexpr> at 0x7f0b072e6140> 二者的区别很明显: 一个直接返回了表达式的结果列表, 而另一个是一个对象,该对象包含了对表达式结果的计算引用, 通

浅谈python中字典append 到list 后值的改变问题

看一个例子 d={'test':1} d_test=d d_test['test']=2 print d 如果你在命令行实践的话,会发现你改动的是d_test ,但是d 也跟着改变了. 通常这和我们期待的不一样. Why? 因为字典d 是一个object ,而d_test=d并没有真正的将该字典在内存中再次创建.只是指向了相同的object.这也是python 提高性能,优化内存的考虑. 实际场景 d={"name":""} l=[] for i in xrange

浅谈python中的数字类型与处理工具

python中的数字类型工具 python中为更高级的工作提供很多高级数字编程支持和对象,其中数字类型的完整工具包括: 1.整数与浮点型, 2.复数, 3.固定精度十进制数, 4.有理分数, 5.集合, 6.布尔类型 7.无穷的整数精度 8.各种数字内置函数及模块. 基本数字类型 python中提供了两种基本类型:整数(正整数金额负整数)和浮点数(注:带有小数部分的数字),其中python中我们可以使用多种进制的整数.并且整数可以用有无穷精度. 整数的表现形式以十进制数字字符串写法出现,浮点数带

浅谈Python中的可变对象和不可变对象

什么是可变/不可变对象 不可变对象,该对象所指向的内存中的值不能被改变.当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址. 可变对象,该对象所指向的内存中的值可以被改变.变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟新的出地址,通俗点说就是原地改变. Python中,数值类型(int和float).字符串str.元组tuple都是不可变类型.而列表list.字典dict.集合

浅谈Python中的异常和JSON读写数据的实现

异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try ... catch ... finally来处理异常,在Python中通过try ... except ... else来处理异常 一.以ZeroDivisionError为例,处理分母为0的除法异常 def division(numerator,denominator): result=numerator/denominator return result ret1=division(1,5) prin

浅谈Python中的生成器和迭代器

迭代器 迭代器协议 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么返回一个异常来终止本次迭代.(只能往前走,不能往后退!) 迭代器对象 遵循了(实现了)迭代器协议的对象.(对象内部实现了一个__next__方法,以实现迭代器协议)称为一个迭代器对象.他们的作用是逐个遍历容器中的对象.迭代器对象一定是可迭代对象 >>> from collections import Iterable, Iterator >>> l = list([1,2,3]) #

浅谈Python中带_的变量或函数命名

Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读,易于在程序员之间交流. python中的标识符可以包含数字.字母和_,但必须以字母或者_开头,其中以_开头的命名一般具有特殊的意义. 前后均带有双下划线__的命名 一般用于特殊方法的命名,用来实现对象的一些行为或者功能,比如__new__()方法用来创建实例,__init__()方法用来初始化对象,