数据容器List
List列表:有序容器
定义:List由一系列按特定顺序排列的元素组成;
使用 [] 表示列表,其中元素使用" , "分隔
创建列表: list = [str1, str2, str3, ...]
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘] 2 print(list1) 3 --->[‘a‘, ‘b‘, ‘c‘, ‘d‘]
序列操作:(用法等同于String)
1、相加:new_list = list1 +list2
2、相乘:new_list = list * num
3、成员检查:in & not in
基本操作:
1、切片:访问List中的元素:
获取单个元素:x = list[num] num为元素在列表中的位置
获取多个元素:x = list[star : end] 参数为起止区间,结果不包含end位元素
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘] 2 print(list1[2]) 3 --->c 4 print(list1[0:2]) 5 --->[‘a‘, ‘b‘]
2、修改元素:即重新赋值:
list[num] = str
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘] 2 list1[1] = ‘abc‘ 3 print(list1) 4 --->[‘a‘, ‘abc‘, ‘c‘, ‘d‘]
3、删除元素:
del list[num] 删除指定位置的元素,删除的元素不能再以任何方式使用
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 2 del list1[3] 3 print(list1) 4 --->[‘a‘, ‘b‘, ‘c‘, ‘e‘, ‘f‘, ‘g‘]
list.pop(num) 删除指定位置的元素,默认删除最后一位;
删除的元素可以赋值给新的变量,继续使用
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 2 x = list1.pop() 3 print(list1) 4 --->[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘] 5 6 y = list1.pop(3) 7 print(list1) 8 --->[‘a‘, ‘b‘, ‘c‘, ‘e‘, ‘f‘]
list.remove(str=) 根据值删除元素,删除的元素可以赋值给新的变量,继续使用
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 2 x = list1.remove(‘c‘) 3 print(list1) 4 --->[‘a‘, ‘b‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘]
list.clear() 将列表元素清空,得到一个空的列表
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 2 list1.clear() 3 print(list1) 4 --->[]
4、添加元素:
list.append(obj) 在列表末尾添加新元素obj
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 2 list1.append(‘ABC‘) 3 list1.append(‘HOME‘) 4 print(list1) 5 --->[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘, ‘ABC‘, ‘HOME‘]
list.insert(index, obj) 在指定位置插入新元素,index后的元素索引自动+1
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 2 list1.insert(0, ‘ABC‘) 3 print(list1) 4 --->[‘ABC‘, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘]
5、复制列表:
list.copy()
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 2 list2 = list1.copy() 3 print(list2) 4 --->[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘]
6、计算列表中某元素出现的个数:
list.count(obj)
1 list1 = [‘a‘, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 2 print(list1.count(‘a‘)) 3 --->2
7、在列表末尾一次性增加另一个列表的多个值:
list.extend(seq) seq为元素列表
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 2 list2 = [1, 2, 3, 4, 5] 3 list1.extend(list2[0:3]) 4 print(list1) 5 --->[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘, 1, 2, 3]
8、获取某元素的索引值:
list.index(obj)
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 2 print(list1.index(‘d‘)) 3 --->3
9、列表元素的排序:
list.reverse() 永久改变;将列表元素反转,如果想改回来,再调用一次reverse()
1 list1 = [‘a‘, ‘b‘, ‘d‘, ‘e‘, ‘c‘, ‘f‘, ‘g‘] 2 list1.reverse() 3 print(list1) 4 --->[‘g‘, ‘f‘, ‘c‘, ‘e‘, ‘d‘, ‘b‘, ‘a‘]
list.sort(key=, reverse=) 永久改变;将列表元素排序,
默认为升序,降序reverse=True
key参数可以设置自定义排序法则
1 list1 = [‘a‘, ‘b‘, ‘d‘, ‘e‘, ‘c‘, ‘f‘, ‘g‘] 2 list1.sort() 3 print(list1) 4 --->[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘]
sorted(list) 临时改变;返回一个新的列表
1 list1 = [‘a‘, ‘b‘, ‘d‘, ‘e‘, ‘c‘, ‘f‘, ‘g‘] 2 print(sorted(list1), id(sorted(list1))) 3 print(list1, id(list1)) 4 --->[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 88098536 5 --->[‘a‘, ‘b‘, ‘d‘, ‘e‘, ‘c‘, ‘f‘, ‘g‘] 88820712
10、列表长度
len(list)
操作列表:
1、遍历列表:
for i in list
1 list1 = [‘a‘, ‘b‘, ‘d‘, ‘e‘, ‘c‘, ‘f‘, ‘g‘] 2 for i in list1: 3 print(i)
2、列表推导式:用于创建新列表
list2 = [n for n in list1 if 判断条件]
1 list1 = [1, 2, 3, 4, 5, 6] 2 list2 = [n * 3 for n in list1 if n % 2 == 1] 3 print(list2) 4 --->[3, 9, 15]