list
任意对象的有序集合(顺序集合)。用方括号[]定义,元素之间以逗号隔开:
L1 = [20,3,45,68]
L1 = [20,3,45.78,'A',"string"]
L1 = [20,3,45.78,'A',"string",["abc","xyz","uvw"]]
通过下标访问(读写)每个数据元素,下标从0开始。
# 下标: 0 1 2 3 4
# 下标:-5 -4 -3 -2 -1
L1 = [20, 3, 45.78, 'A', "string"]
L1[2]
L1[-1]= 90
通过下标范围访问(读写)一个子列表(list)。
# 格式: 列表名[起始位置:结束位置] ,返回一个列表,但不包括最后位置的元素。
# 下标: 0 1 2 3 4
# 下标:-5 -4 -3 -2 -1
>>>L1 = [20, 3, 45.78, 'A', "string"]
>>>L1[0:3]
>>>L1[:4]
>>>L1[-3:-1]
>>>L1[:]
>>>L1[0:5:2] #第二个:用于指定步长,即间隔2个取一个元素
[20,45.78,"string"]
>>>L1[:3]= 100 # 错:必须用列表给列表赋值
>>>L1[:3] = [80,90] #必须用列表给列表赋值
[80,90, 'A', "string"]
>>>L1[:3] = (80,90)
#可以用元素(圆括号()构成的有序集合)给列表赋值吗? 因此,可以给列表一个可迭代的对象
>>> L1=[1,2,3,4,5]
>>>>L1[::2]= [50]
#!如果左边是带有步长的范围,右边的可迭代对象如列表必须有相同个数的数据元素
>>>>L1[::2]= [50,60,70]
#!如果左边是带有步长的范围,右边的可迭代对象如列表必须有相同个数的数据元素
可以通过range函数生成一个序列来构造列表
>>>L1 = list(rang(5))
[0,1,2,3,4]
可以用全局函数或列表自身的方法操作列表.如用列表的方法append追加一个元素、用extend扩展列表,用全局函数len得到列表的元素个数。
>>>L1 = [20, 3, 45.78, 'A', "string"]
>>>L1.append(67) #在最后追加一个元素
>>>L1.append(67,89) # 错:append函数只接受一个参数
>>>L1.append([67,89])
# append函数接受一个参数,但可以是任意对象
[20, 3, 45.78, 'A', "string",67,[67,89]]
>>>len(L1) #全局函数len返回列表L1中的数据元素个数
7
>>>L1.extend(10,20) # 错:extend函数只接受一个参数
>>>L1.extend([10,20]) # extend函数总是接受一个列表
[20, 3, 45.78, 'A', "string",67,[67,89],10,20] # 10,20称为2个元素而不是一个列表元素
>>>L1.extend(30) # 错: extend函数总是接受一个列表
通过列表list的insert方法插入一个元素。
# 格式: insert(插入位置,插入元素值)
>>>L1= [1,2,3,4,5,6]
>>>L1.insert(1,99)
[1,99,2,3,4,5,6]
#当然也可以通过给列表赋值的方法进行插入,如
>>>L1[1:1]=[100]
[1,100,99,2,3,4,5,6]
再看一些其他常用函数和方法:
>>> L1= [1,2,3,2,5,6]
>>> min(L1)
>>> max(L1)
>>> sum(L1)
>>> a = 2
>>> L1.index(a) #查找a=2在列表中的位置
>>> L1.count(a) # 统计a=2在列表中出现的次数
可以通过加法运算符 + 来拼接字符串,或者用乘法运算符*
>>>L1 = [0,1,2,3]
>>>L1 + [4,5,6,7]
[0,1,2,3,4,5,6,7]
>>> L1*3
[0,1,2,3,0,1,2,3,0,1,2,3]
>>> L1
[0,1,2,3] # 说明加法和乘法并没有影响原来的列表,而是产生一个新的列表
删除元素
# 通过del 运算符删除列表中的元素
>>>L1 = [1,2,3,4,5,6,,7,8,9]
>>> del L1[2]
[1,2,4,5,6,7,8,9]
>>> del[::2]
[2,5,7,9]
#通过赋值空列表方法也可以删除
>>>L1[:2]=[]
[9]
# 通过列表的remove方法删除第一个值匹配的元素
>>>L1=[2,4,5,3,6,3]
>>> L1.remove(3)
[2,4,5,6,3]
# 通过clear清空列表
>>> L1.clear()
>>> L1
[]
# 通过list的pop方法删除一个元素,如
>>> L=[1,2,3,4,5]
>>>L.pop(); # 不带参数表示删除最后一个元素
>>>L.pop(0) ##删除下标是0的第一个元素
>>>L
[2,3,4]
可用in来判断一个元素是否在一个列表里
>>>L1 = ["Hello",80, 95.5]
>>> a= 80
>>> a in L1
False
>>> a= "hello"
>>> a not in L1
True
可用not in来判断一个元素是否不在一个列表里
>>>L1 = ["Hello",80, 95.5]
>>> a= 80
>>> a not in L1
True
>>> a= "hello"
>>> a in L1
False
>>> a= 95.5000
>>> a in L1
False
复制列表
>>> L = [1,2,3,4,5,6]
>>> S = L # S和L都是同一个列表的名字,修改任何一个就是修改另外一个
>>> S = L[:] # S,L是相互独立的
>>> S = L.copy() # S,L是相互独立的
排序sort
>>> L = ["Lipin","ZhangWei","Scott","Hello"]
>>> L.sort();
>>> L.sort(f= lambda x: x[-1])
#传入一个lambda函数,按照最后一个字母来排序
>>> L = [45,13,28,5,89,24]
>>> L.sort(reverse=true)
#也可以用全局函数来对列表排序
>>> L = ["Lipin","ZhangWei","Scott","Hello"]
>>> S = sorted(L,f= lambda x: x[-1]) #将返回一个排序好的列表,S和L是同一个列表对象吗?
Python列表操作的函数和方法
- 列表操作包含以下函数:
1、cmp(list1, list2):比较两个列表的元素
2、len(list):列表元素个数
3、max(list):返回列表元素最大值
4、min(list):返回列表元素最小值
5、list(seq):将元组转换为列表
- 列表操作包含以下方法:
1、list.append(obj):在列表末尾添加新的对象 2、list.count(obj):统计某个元素在列表中出现的次数 3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) 4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置 5、list.insert(index, obj):将对象插入列表 6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 7、list.remove(obj):移除列表中某个值的第一个匹配项 8、list.reverse():反向列表中元素 9、list.sort([func]):对原列表进行排序
参考:
An Introduction to Python Lists
http://www.tutorialspoint.com/python/python_lists.htm
您的打赏是对我最大的鼓励!