python 列表操作
创建列表
创建列表可以用中括号
1 list_a = [1,2,3,"dsa",10,2,4,5]
访问列表值
可以根据索引下标访问元素,注意索引从0开始
1 list_a = [1, 2, 3, "dsa", 10, 2, 4, 5] 2 print(list_a[0]) 3 print(list_a[2]) 4 print(list_a[1:3]) 5 print(list_a[1:8:2]) 6 7 结果: 8 1 9 3 10 [2, 3] 11 [2, "dsa", 2, 5]
更新列表
更新列表有三种方法,append(x),extend([x,y,z]),insert(index,x)
1.向原列表末尾追加元素
1 list_a = [1, 2, 3, "dsa", 10, 2, 4, 5] 2 list_a.append(10) 3 print(list_a) 4 5 结果: 6 [1, 2, 3, "dsa", 10, 2, 4, 5, 10]
2.向原列表追加一个列表
1 list_a = [1, 2, 3, "dsa", 10, 2, 4, 5] 2 list_a.extend([9,10]) 3 print(list_a) 4 5 结果: 6 [1, 2, 3, "dsa", 10, 2, 4, 5, 9, 10]
3.向原列表插入元素,可以指定位置
1 list_a = [1, 2, 3, "dsa", 10, 2, 4, 5] 2 list_a.insert(1, 4) 3 print(list_a) 4 5 结果: 6 [1, 4, 2, 3, "dsa", 10, 2, 4, 5]
删除列表元素
删除列表元素有三种方法,del list[index]语句,remove(x),pop(index)
1.del 语句可以删除指定索引位置的元素
1 list_a = [1, 2, 3, "dsa", 10, 2, 4, 5] 2 del list_a[2] 3 print(list_a) 4 5 结果: 6 [1, 2, "dsa", 10, 2, 4, 5]
2.remove()删除从左找到的第一个指定的元素
1 list_a = [1, 2, 3, "dsa", 10, 2, 4, 5] 2 list_a.remove(10) 3 print(list_a) 4 5 结果: 6 [1, 2, 3, "dsa", 2, 4, 5]
3.pop()删除指定索引位置的元素,并返回该元素
1 list_a = [1, 2, 3, "dsa", 10, 2, 4, 5] 2 a = list_a.pop(3) 3 print(list_a) 4 print(a) 5 6 结果: 7 [1, 2, 3, 10, 2, 4, 5] 8 dsa
列表操作符
+用于组合列表,*用于重复列表
1 list_a = [1, 2, 3, "dsa", 2, 4, 5] 2 list_b = [2, 3, 65, 111] 3 list_c = list_a + list_b 4 print(list_c) 5 6 list_d = list_c*2 7 print(list_d) 8 9 结果: 10 [1, 2, 3, "dsa", 2, 4, 5, 2, 3, 65, 111] 11 [1, 2, 3, "dsa", 2, 4, 5, 2, 3, 65, 111, 1, 2, 3, "dsa", 2, 4, 5, 2, 3, 65, 111]
列表排序
列表排序有三种,永久性排序sort(),临时性排序sorted(list),反转排序reverse()
1.永久性排序sort(),就是这个列表的顺序就变了
1 list_a = [10, 21, 3, 2, 4, 5] 2 list_a.sort() 3 print(list_a) 4 5 结果: 6 [2, 3, 4, 5, 10, 21]
2.临时性排序sorted(list),参数是列表,赋值给新列表,原列表不变
1 list_a = [10, 21, 3, 2, 4, 5] 2 list_b = sorted(list_a) 3 print("list_a: %s" % list_a) 4 print("list_b: %s" % list_b) 5 6 结果: 7 list_a: [10, 21, 3, 2, 4, 5] 8 list_b: [2, 3, 4, 5, 10, 21]
3.反转排序reverse(),列表排序反转
1 list_a = [10, 21, 3, 2, 4, 5] 2 list_a.reverse() 3 print("list_a: %s" % list_a) 4 5 结果: 6 list_a: [5, 4, 2, 3, 21, 10]
列表函数
len(list):返回列表元素个数或者叫长度
max(list):返回列表元素最大值
min(list):返回列表元素最小值
set(list):列表去重,返回的为一个集合,需再转换为列表
1 list_a = [10, 21, 3, 2, 4, 5, 2, 5, 2, 4, 6, 5] 2 a = len(list_a) 3 b = max(list_a) 4 c = min(list_a) 5 d = list(set(list_a)) 6 print("列表长度:%s" % a) 7 print("列表元素最大值:%s" % b) 8 print("列表元素最小值:%s" % c) 9 print("列表去重后为:%s" % d) 10 11 结果: 12 列表长度:12 13 列表元素最大值:21 14 列表元素最小值:2 15 列表去重后为:[2, 3, 4, 5, 6, 10, 21]
列表切片
1 list_a = [10, 21, 3, 2, 4, 5, 11, 43, 5, 7, 98] 2 print(list_a[1:]) # 索引1到最后 3 print(list_a[:3]) # 开始到索引3 4 print(list_a[1:7:2]) # 索引1到6,每隔2个取一个值 5 print(list_a[:-1]) # 开始到倒数第二个 6 print(list_a[::-1]) # 等价于reverse函数反转效果 7 8 结果: 9 [21, 3, 2, 4, 5, 11, 43, 5, 7, 98] 10 [10, 21, 3] 11 [21, 2, 5] 12 [10, 21, 3, 2, 4, 5, 11, 43, 5, 7] 13 [98, 7, 5, 43, 11, 5, 4, 2, 3, 21, 10]
列表拷贝
列表深拷贝:list_b = list_a[:],对list_b操作不会影响list_a
1 list_a = [10, 21, 3, 2, 4, 5, 11, 43, 5, 7, 98] 2 list_b = list_a[:] 3 list_b.append(15) 4 print("list_a: %s" % list_a) 5 print("list_b:%s" % list_b) 6 7 结果: 8 list_a: [10, 21, 3, 2, 4, 5, 11, 43, 5, 7, 98] 9 list_b: [10, 21, 3, 2, 4, 5, 11, 43, 5, 7, 98, 15]
列表浅拷贝:list_b = list_a,对list_b操作会影响list_a
1 list_a = [10, 21, 3, 2, 4, 5, 11, 43, 5, 7, 98] 2 list_b = list_a 3 list_b.append(15) 4 print("list_a: %s" % list_a) 5 print("list_b:%s" % list_b) 6 7 结果: 8 list_a: [10, 21, 3, 2, 4, 5, 11, 43, 5, 7, 98, 15] 9 list_b: [10, 21, 3, 2, 4, 5, 11, 43, 5, 7, 98, 15]