Python学习之路04——列表
- 创建列表
- 访问和修改列表
- 列表中的常用方法
- append、insert、extend
- pop、remove、clear、del
- count、index
- reverse、sort
- copy、深拷贝和浅拷贝
- 列表分片
- 列表上的常用操作符
- 列表生成式
创建列表
list(iterable=(), /)
列表中可以存放不同类型的元素,使用 [] 创建列表
# 创建有元素的列表
>> L1 = [1,2,3,4,5]
>> L2 = [1,2,[1,2,3],'hello']
# 创建空列表
>> L3 = []
>> L4 = list()
访问和修改列表
列表元素的访问和修改与数组中的操作类似,可按下标索引访问
# 访问列表元素
>>> L1 = [1,2,3,[1,2,3]] # 初始化列表
>>> L1[0]
1
>>> L1[3]
[1,2,3]
>>> L1[3][0]
1
# 修改列表元素
>>> L1[3] = 4
>>> L1
[1,2,3,4]
列表中的常用方法
append、insert、extend
append(self, object, /)
用于把单个对象添加到列表表尾
insert(self, index, object, /)
用于把单个对象添加到列表指定下标位置
extend(self, iterable, /)
用于把可迭代对象中的元素依次添加到列表表尾
>>> L1 = [1,2,3]
>>> L1.append([1,2,3])
>>> L1
[1, 2, 3, [1, 2, 3]]
>>> L1.insert(0,'string')
['string', 1, 2, 3, [1, 2, 3]]
>>> L1.extend([1,2,3])
['string', 1, 2, 3, [1, 2, 3], 1, 2, 3]
pop、remove、clear、del
pop(self, index=-1, /)
用于删除指定下标的元素并返回此元素,默认删除表尾元素
remove(self, value, /)
用于按值删除列表中元素,若有多个同样的值,只删除第一个
clear(self, /)
用于清空列表
del方法可按下标删除列表中的单个元素,也可以直接删除整个列表
>>> L1 = [1,2,3,1,2,3,'1','2','3']
>>> L1.pop()
'3'
>>> L1.pop(0)
1
>>> L1.remove(2)
[3, 1, 2, 3, '1', '2']
>>> L1.remove(2)
>>> L1
[3, 1, 3, '1', '2']
>>> del L1[0]
>>> L1
[1, 3, '1', '2']
>>> L1.clear()
>>> L1
[]
>>> del L1
>>> L1
NameError: name 'L1' is not defined
count、index
count(self, value, /)
用于得到值在列表中出现的次数
index(self, value, start=0, stop=2147483647, /)
用于得到值在列表中的下标位置,搜索范围可设置
>>> L1 = [1,2,3,4,5,1,2,3,4,5]
>>> L1.count(2)
2
>>> L1.index(2)
1
>>> L1.index(2,2)
6
reverse、sort
reverse(self, /)
用于把列表元素反序
sort(self, /, *, key=None, reverse=False)
用于排序列表元素,默认升序,指定reverse参数为True可按降序排序
>>> L1 = [1,3,5,4,6,2]
>>> L1.sort()
>>> L1
[1, 2, 3, 4, 5, 6]
>>> L1.reverse()
>>> L1
[6, 5, 4, 3, 2, 1]
copy、深拷贝和浅拷贝
copy(self, /)
用于得到一个与原列表元素一样的新列表
使用分片和copy得到的是深拷贝
使用复制得到的是浅拷贝
>>> L1 = [1,2,3]
>>> L2 = L1.copy()
>>> L3 = L1[:]
>>> L4 = L1
>>> L1==L2 and L1==L3 and L1==L4
True
>>> L1 is L2
False
>>> L1 is L3
False
>>> L1 is L4
True
列表分片
使用 L[start:end] 进行分片操作
: 左边是开始位置,右边是结束位置且不包含该位置
: 左边缺省表示从 0 开始,右边缺省表示到最后位置结束
: 两边都缺省表示全选
>>> L1 = [0,1,2,3,4,5]
>>> L1[1:4]
[1,2,3]
>>> L1[:4]
[0,1,2,3]
>>> L1[2:]
[2,3,4,5]
>>> L1[:]
[0,1,2,3,4,5]
>>> L1[1:5][2:] # 表示进行两次切片操作,第一次得到[1,2,3,4]
[3,4] # 第二次对[1,2,3,4]切片得到[3,4]
列表上的常用操作符
列表上的常用操作符有:+ * in not in
>>> L1 = [1,2,3]
>>> L2 = [4,5,6]
>>> L1 + L2
[1,2,3,4,5,6]
>>> L1 * 3
[1,2,3,1,2,3,1,2,3]
>>> 2 in L1
True
>>> 2 not in L1
False
列表生成式
# 生成包含1~20之间的偶数的列表
>>> [2*x for x in range(1,11)]
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
# 生成包含整数1~10的平方的列表
>>> [x*x for x in range(1,11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]