本文几乎囊括了列表list的全部使用方法,便于快速学习上手,也便于查阅。
其它类型使用:字符串、字典、集合。
目录
列表
列表类型
列表是可变序列,通常用于存储一系列类型相同的值。列表用方括号表示,其中的值用逗号,
分隔。可用列表推导式或list()
方法创建列表。
l1 = [1, 2, 3]
l2 = ['cat', 'bat', 'rat']
l3 = [] # 空列表
l4 = [x for x in range(5)]
l5 = list((1, 2, 3))
列表中也可以包含列表(多维列表)。如
l = [['cat', 'bat', 'rat'], [1, 2, 3]]
索引
列表中的第 1 个元素下标是0,第 2 个值下标是1,以此类推。
l = ['cat', 'bat', 'rat']
print(l[0]) # 'cat'
print(l[1]) # 'bat'
print(l[2]) # 'rat'
列表中的列表可通过多重下标访问。如
l = [['cat', 'bat', 'rat'], [1, 2, 3]]
print(l[0][1]) # 'bat'
print(l[1][2]) # 3
第 1 个下标表明使用的是哪个列表,第 2 个下标表明列表中的值。
也可使用负数作为下标,-1 指最后 1 个元素,-2是倒数第 2 个元素,以此类推。
l = ['cat', 'bat', 'rat']
print(l[-1]) # 'rat'
print(l[-3]) # 'cat'
切片
切片可以从列表中取得多个值,得到新的列表。如
l = ['cat', 'bat', 'rat', 'elephant']
print(l[1: 3]) # ['bat', 'rat']
print(l[: 2]) # ['cat', bat']
print(l[2: ]) # ['rat', 'elephant']
print(l[0: 4: 2]) # ['cat', 'rat']
切片用冒号:
分隔两个数字,第 1 个数字表示开始处的下标,省略则默认 0;第 2 个数字表示结束处的下标,省略则表示列表长度。新得到的列表从第 1 个数字作为下标开始,直到最后 1 个数字下标,但不包括最后 1 个数字所指代的元素。切片索引值也可以包含步长。
长度、最值和平均值(len(), min(), max(), sum())
len()
函数将返回列表中元素的个数。如
len(['cat', 'bat', 'rat', 'elephant']) # 4
max()
方法求列表中元素最大值,min()
方法求列表元素最小值。
l = [2, 4, 1, 10]
max(l) # 10
min(l) # 1
sum()
方法可得到所有元素的和,除以长度即可得到平均值。
sum(l) # 17
sum(l) / len(l) # 4.25
in
和not in
in
和not in
确定一个值是否在列表中。如
'cat' in ['cat', 'bat', 'rat'] # True
'elephant' in ['cat', 'bat', 'rat'] # False
'cat' not in ['cat', 'bat', 'rat'] # False
'elephant' not in ['cat', 'bat', 'rat'] # True
多重赋值
用列表中的值为多个变量赋值,变量数目必须与列表长度相同。
size, color, disposition = ['fat', 'black', 'loud']
该操作常见于函数返回值。
增删改
修改值
可利用下标的形式,修改列表中元素的值。如
l = ['cat', 'bat', 'rat']
l[1] = 'elephant'
print(l) # ['cat', 'elephant', 'rat']
删除值(del, clear(), pop(), remove())
del
语句删除某个下标处的值,被删除值后面的元素下标向前移动一位。如
l = ['cat', 'bat', 'rat']
del l[1]
print(l) # ['cat', 'rat']
clear()
删除所有元素,相当于
del l[:]
l.clear()
pop()
方法删除最后一个元素,并返回该元素;pop(i)
删除第i
个元素。
l = ['cat', 'bat', 'rat']
l.pop() # 'rat'
l = ['cat', 'bat', 'rat']
l.pop(1) # 'bat'
remove(x)
删除列表中第1个出现的x
,如果x
不在列表中,则报ValueError
错误。
l = ['cat', 'bat', 'rat']
l.remove('bat') # ['cat', 'rat']
l = ['cat', 'bat', 'rat', 'bat']
l.remove('bat') # ['cat', 'rat', 'bat']
连接和倍增(+, *)
+
可连接两个列表,得到新的列表。*
作用于一个列表和一个整数,实现列表的复制。如
[1, 2, 3] + ['cat', 'bat', 'rat'] # [1, 2, 3, 'cat', 'bat', 'rat']
['cat', 'bat', 'rat'] * 3 # ['cat', 'bat', 'rat', 'cat', 'bat', 'rat', 'cat', 'bat', 'rat']
插入值(append(), extend(), insert())
append()
方法直接将新的对象添加至列表末尾。如果新添加的对象是个列表,则直接把列表加入末尾。
l = ['cat', 'bat', 'rat']
l.append('elephant') # ['cat', 'bat', 'rat', 'elephant']
l1 = ['cat', 'bat']
l2 = ['rat', 'elephant']
l1.append(l2) # ['cat', 'bat', ['rat', 'elephant']]
extend()
方法同样是把新的对象添加至列表末尾。与append()
方法不同的是,如果添加的是列表,则把新对象中的元素逐个添加至列表末尾,类似于连接(+
)操作。
l1 = ['cat', 'bat']
l2 = ['rat', 'elephant']
l1.extend(l2) # ['cat', 'bat', 'rat', 'elephant']
insert()
方法可以在列表中任意位置插入值,第 1 个参数表示新元素下标,第 2 个参数表示新元素的值。如
l = ['cat', 'bat', 'rat']
l.insert(1, 'elephant') # ['cat', 'elephant', 'bat', 'rat']
其它方法
复制(copy())
使用=
可将一个变量对列表的引用赋值给另外一个变量,两个变量指向同一个列表。当一个变量发生变化时,另一个变量会同时变化。
l1 = [1, 2, 3]
l2 = l1
print(l2) # [1, 2, 3]
l2[2] = 10
print(l1) # [1, 2, 10]
print(l2) # [1, 2, 10]
如果不希望上述情况发生,则可使用copy()
方法。
l1 = [1, 2, 3]
l2 = l1
l2[2] = 10
print(l1) # [1, 2, 3]
print(l2) # [1, 2, 10]
copy()
方法也存在与copy
模块中,起到相同的效果。
import copy
l2 = copy.copy(l1)
如果列表是多维列表,那么上述 2 个copy
方法就没用了,则要使用到copy
模块中的deepcopy()
方法。
import copy
l2 = copy.deepcopy(l1)
更过关于copy模块的内容。
获取索引(index())
用index()
方法查找元素在列表中的下标,如果该元素不在列表中,就报错。如果有多个元素,则返回第一个元素的下标。如
l = ['cat', 'bat', 'rat']
l.index('bat') # 1
l = ['cat', 'bat', 'rat', 'rat', 'elephant']
l.index('rat') # 2
获取某个元素个数(count())
count(x)
求元素x
在列表中出现的次数。
l = [1, 2, 3, 5, 3, 10, 3]
l.count(3) # 3
排序(sort())
sort()
方法用于排序,如
l = ['d', 'e', 'a', 'c', 'b']
l.sort() # ['a', 'b', 'c', 'd', 'e']
可以指定reverse
关键字为True
,让其逆序排列。如
l = ['d', 'e', 'a', 'c', 'b']
l.sort(reverse=True) # ['e', 'd', 'c', 'b', 'a']
sort()
方法不能对既有数字又有字符串的列表排序。sort()
排序是区分大小写的,按ASCII码排序,如果要忽视大小写,则需要指定关键字key
为str.lower
。如
l = ['D', 'e', 'a', 'c', 'B']
l.sort() # ['B', 'D', 'a', 'c', 'e']
l.sort(key=str.lower) # ['a', 'B', 'c', 'D', 'e']
逆序(reverse())
reverse()
方法逆转列表中元素的顺序,如
l = ['cat', 'bat', 'rat']
l.reverse() # ['rat', 'bat', 'cat']
更详尽的关于列表内容请参阅python文档。
list
操作汇总图片。