数据容器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]
1 list1 = ['a', 'b', 'c', 'd']2 print(list1[2])3 --->c4 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'] 880985365 --->['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]