Python之列表与列表推导式
1. 列表的创建与删除
1.1 创建列表
# 创建空列表
>>> List = []
>>> List
[]
>>> List = list()
>>> List
[]
# 初始化列表
>>> List = ['TSWorld']
>>> List
['TSWorld']
1.2 其他类型转换为列表
# 元组转换为列表
>>> List = list((1,3,1,4,5,2,0))
>>> List
[1, 3, 1, 4, 5, 2, 0]
# range对象转换为列表
>>> List = list(range(1,10,3))
>>> List
[1, 4, 7]
# 字符串转换为列表
>>> List = list('TSWorld')
>>> List
['T', 'S', 'W', 'o', 'r', 'l', 'd']
# 集合转换为列表
>>> List = list({5,2,0})
>>> List
[0, 2, 5]
# 字典的“键”转换为列表
>>> List = list({'T':5,'S':2,'W':0})
>>> List
['T', 'S', 'W']
# 字典的“键:值”转换为列表
>>> List = list({'T':5,'S':2,'W':0}.items())
>>> List
[('T', 5), ('S', 2), ('W', 0)]
1.3 删除列表
# 删除指定元素
>>> List = [5,2,1]
>>> List
[5, 2, 1]
>>> del List[0]
>>> List
[2, 1]
# 删除列表对象,对象删除后无法再访问,抛出异常
>>> del List
>>> List
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'List' is not defined
# 删除字典中的部分元素
>>> Dic = {'T':5,'S':2,'W':0}
>>> del Dic['T']
>>> Dic
{'S': 2, 'W': 0}
2. 列表常用方法
方法 | 说明 |
---|---|
List.append(x) | 将元素 x 添加至列表 List 尾部 |
List.extend(L) | 将列表 L 中的所有元素添加至列表 List 尾部 |
List.insert(index,x) | 在列表 List 指定位置 index 处添加元素 x,该位置后面的所有元素后移一个位置 |
List.remove(x) | 在列表 List 中删除首次出现的指定元素,该元素之后的所有元素前移一位 |
List.pop([index]) | 删除并返回列表 List 中下标为 index (默认为-1) 的元素 |
List.clear() | 删除列表 List 中的所有元素,但保留列表对象 |
List.index(x) | 返回列表 List 中第一个值为 x 的下标 |
List.count(x) | 返回指定元素 x 在列表 List 出现的次数 |
List.reverse() | 对列表 List 所有元素进行逆序 |
List.sort(key = None,reverse = False) | 对列表 List 中的元素进行排序,key 用来指定排序依据,reverse 决定升序(False)还是降序(True) |
3. 列表推导式
列表推导式在逻辑相当于一个循环,只是形式更加简洁
>>> List = [i*i for i in range(10)]
>>> List
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 相当于
for i in range(10):
List.append(i*i)
4. 切片
4.1 使用切片获取列表中的部分元素
# 返回列表中的所有元素
>>> List = [1,3,1,4,5,2,0]
>>> List[::]
[1, 3, 1, 4, 5, 2, 0]
# 返回列表中的所有元素的逆序列表
>>> List[::-1]
[0, 2, 5, 4, 1, 3, 1]
# 隔一个元素取一个元素,获取偶数位置的元素
>>> List[::2]
[1, 1, 5, 0]
# 隔一个元素取一个元素,获取奇数位置的元素
>>> List[1::2]
[3, 4, 2]
4.2 使用切片对列表元素进行增、删、改
# 在尾部添加元素
>>> List[len(List):] = [1314]
>>> List
[1, 3, 1, 4, 5, 2, 0, 1314]
# 替换列表元素
>>> List[:2] = [2020,11,18]
>>> List
[2020, 11, 18, 1, 4, 5, 2, 0, 1314]
# 删除列表元素
>>> List[:2] = []
>>> List
[18, 1, 4, 5, 2, 0, 1314]