Python3 列表归纳
1、创建列表
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
- list1 = ['Google', 'Runoob', 1997, 2000];
- list2 = [1, 2, 3, 4, 5 ];
- list3 = ["a", "b", "c", "d"];
2、操作列表
类型 |
方法 |
说明 |
参数 |
增 |
list.append(obj) |
在列表末尾添加一个新的对象 |
不管这个对象是什么数据类型, append()都会以一个新元素的方式追加至结尾 |
list.extend(seq) |
在列表末尾追加多个值 |
seq以元素列表的形式进行追加, extend()相当于合并两个列表 |
|
list.insert(index, obj) |
将指定对象插入列表的指定位置。 |
index -- 对象obj需要插入的索引位置。 obj -- 要插入列表中的对象。 |
|
删 |
list.pop(obj=list[-1]) |
移除列表中的一个元素, 并且返回该元素的值。 |
不填写参数,默认最后一个元素 pop()方法带返回值 |
del list[index] |
根据index索引删除列表中的一个元素 |
不填写参数,默认最后一个元素 del 不带返回值 |
|
list.remove(obj) |
函数用于移除列表中某个值的第一个匹配项。 |
该方法没有返回值 但是会移除两种中的某个值的第一个匹配项。 |
|
改 |
list[index]=new_obj |
根据索引位置直接赋值即可 |
|
查 |
list[index] |
可以直接根据索引值查询 |
|
list[start:end] |
也可以通过遍历索引的方式查询多值 |
|
|
list.index(obj) |
函数用于从列表中找出某个值第一个匹配项 的索引位置。 |
obj -- 查找的对象。 |
|
max(list) |
返回列表元素中的最大值 |
list -- 要返回最大值的列表 |
|
min(list) |
返回列表元素中的最小值 |
list -- 要返回最小值的列表。 |
|
统计 |
list.count(obj) |
统计某个元素在列表中出现的次数 |
obj -- 列表中统计的对象。 |
len(list) |
统计列表中的元素个数 |
list -- 要计算元素个数的列表。 |
|
排序 |
list.sort([func]) |
函数用于对原列表进行排序 |
func -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。 |
list.reverse() |
函数用于反向列表中元素 |
该方法没有返回值, 但是会对列表的元素进行反向排序。 |
|
复制 |
list.copy() |
函数用于复制列表,类似于list_copy[:] |
返回复制后的新列表 |
清空 |
list.clear() |
函数用于清空列表,类似于del list[:] |
该方法没有返回值 |
3、注意事项
1.copy()与直接赋值的区别
直接赋值赋过来不是变量是指针地址,方式相当于引用,新值与原值之间元素调整互相影响。
copy()方法相当于重新开辟了一个新的副本,新值与原值互不影响。
代码举例:
1 a=[0,1,2,3,4,5] 2 b=a 3 c=a.copy() 4 5 del a[1] 6 ''' 7 各变量值为: 8 a=[0, 2, 3, 4, 5] 9 b=[0, 2, 3, 4, 5] 10 c=[0, 1, 2, 3, 4, 5] 11 ''' 12 13 b.remove(4) 14 ''' 15 各变量值为: 16 a=[0, 2, 3, 5] 17 b=[0, 2, 3, 5] 18 c=[0, 1, 2, 3, 4, 5] 19 ''' 20 21 c.append(9) 22 ''' 23 各变量值为: 24 a=[0, 2, 3, 5] 25 b=[0, 2, 3, 5] 26 c=[0, 1, 2, 3, 4, 5, 9] 27 '''
2、copy()与deepcopy()的区别
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。
1. copy.copy 浅拷贝:只拷贝父对象,不会拷贝对象的内部的子对象。
2. copy.deepcopy 深拷贝:拷贝对象及其子对象 。
代码举例:
1 import copy 2 a = [1, 2, 3, 4, ['a', 'b']] #原始对象 3 4 b = a #赋值,传对象的引用 5 c = copy.copy(a) #对象拷贝,浅拷贝 6 d = copy.deepcopy(a) #对象拷贝,深拷贝 7 8 a.append(5) #修改对象a 9 a[4].append('c') #修改对象a中的['a', 'b']数组对象 10 11 print 'a = ', a 12 print 'b = ', b 13 print 'c = ', c 14 print 'd = ', d 15 16 ''' 17 输出结果: 18 a = [1, 2, 3, 4, ['a', 'b', 'c'], 5] 19 b = [1, 2, 3, 4, ['a', 'b', 'c'], 5] 20 c = [1, 2, 3, 4, ['a', 'b', 'c']] 21 d = [1, 2, 3, 4, ['a', 'b']] 22 '''