1. 创建列表:[ ]、list()
[]
a = []
a = [1, 2, 3]
list()
:传入可迭代对象
a = list()
a = list(range(2)) # [0, 1]
a = list((1, 2, 3)) # [1, 2, 3]
a = list("abc") # ['a', 'b', 'c']
- 判断是否为可迭代对象
from collections.abc import Iterable
isinstance(123, Iterable) # True
2. 增加元素:append、insert、extend、+
append()
:在列表末尾添加一个元素
a = []
a.append(1)
a.append('a')
a # [1, 'a']
insert()
:在列表某一位置插入一个元素
a.insert(0, 'hi')
a # ['hi', 1, 'a']
a.insert(10, 0) # 插入索引大于列表中最大的索引,直接插入到末尾
a # ['hi', 1, 'a', 0]
extend()
:连接两个列表,和+
作用一样
b = [5, 6, 7]
a.entend(b) # ['hi', 1, 'a', 0, 5, 6, 7]
3. 删除元素:del、pop、remove
del()
:删除传入下标的元素,不返回删除值
del a[2]
a # ['hi', 1, 0, 5, 6, 7]
pop()
:默认删除最后一个元素,返回删除值
out = a.pop() # 可以接收返回值
a # ['hi', 1, 0, 5, 6]
out # 7
a.pop(1)
a # ['hi', 0, 5, 6]
remove()
:传入要删除的元素,只会删除找到的第一个元素
a.remove('hi')
a # [0, 5, 6]
4. 修改列表元素
列表中存放的是指向相应元素的地址,当修改列表元素时,只是将此元素指向新的元素地址。
a[0] = 2
a # [2, 5, 6]
5. 查询元素:[ ]、index
- 利用下标访问元素
a[0] # 2
a[-1] # 6
index()
:查询指定元素的下标
a.index(2) # 0
6. 列表操作:loop、+、*、比较、sort、reverse、max、min、sum
- 循环打印
for n in a:
print(n)
# 2
# 5
# 6
for index, n in enumerate(a):
print(f'no {index + 1} is {n}')
# no 1 is 2
# no 2 is 5
# no 3 is 6
- 基本运算
b = [1, 2, 3]
c = [4, 5, 6]
b + c # [1, 2, 3, 4, 5, 6]
b * 2 # [1, 2, 3, 1, 2, 3]
b == c # False,判断每个元素是否相等
- 排序
d = [2, 3, 1, 9, 6]
d.reverse() # 反转列表,返回值为 None
d # [6, 9, 1, 3, 2]
d = [2, 3, 1, 9, 6]
d.sort() # 在原列表上对列表从小到大排序,返回值为 None
d # [1, 2, 3, 6, 9]
d.sort(reverse=True) # 在原列表上对列表从大到小排序,返回值为 None
d # [9, 6, 3, 2, 1]
# 不改变原列表,返回原列表的排序
sorted(d) # [1, 2, 3, 6, 9]
scores = [("zhangsan", 88), ("lisi", 98), ("wangwu", 86)]
scores.sort()
scores # [('lisi', 98), ('wangwu', 86), ('zhangsan', 88)]
scores.sort(key=lambda n: n[1]) # 指定排序规则,n 为列表的迭代元素
scores # [('wangwu', 86), ('zhangsan', 88), ('lisi', 98)]
d = [2, 3, 1, 9, 6]
max(d) # 9
min(d) # 1
sum(d) # 21
7. 推导式:map
- 复制
d = [2, 3, 1, 9, 6]
e = d[:] # e 和 d 所指向的地址不同,两个不同的列表
- 推导式
f = [n * n for n in d]
f # [4, 9, 1, 81, 36]
g = [n * n for n in d if n % 3 == 0]
g # [9, 81, 36]
- map
h = map(lambda n: n * n, d)
list(h) # [4, 9, 1, 81, 36]