1. List
1.1 列表特性
列表支持迭代,按索引访问:
myList = [1, 2, 3, 4]
for elem in myList:
print(elem)
引用类型:列表名是列表的引用,删除列表名后列表仍然存在:
a = [1, 2, 3, 4]
b = a
del a
print(b) # [1, 2, 3, 4]
要删除列表本身,可以使用 del a[:]
:
a = [1, 2, 3, 4]
del a[:]
print(a) # []
1.2 创建列表
创建 1 维列表和 2 维列表:
a = [0, 1, 2, 3]
b = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
使用 列表推导式
squeres = [x**2 for x in range(0, 5)]
combination = [(x, y) for x in [1, 2, 3] for y in [1, 3] if x != y]
如通过列表推导式将列表转置:
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
a = [[row[i] for row in a] for i in range(0, len(a[0]))]
print(a)
1.3 常用方法:
list.append(x) # 在 list 尾部添加元素 x
list.extend(L) # 在 list 尾部添加列表 L
list.insert(i, x) # 在位置 i 处插入元素 x
list.remove(x) # 删除第一个值为 x 的元素,不存在则报错
list.pop([i]) # 删除位置 i 处的元素并返回
list.clear() # 清空列表,相当与 del list[:]
list.count(x) # 返回元素 x 出现的次数
list.sort() # 就地排序
list.reverse() # 就地逆序
list
可以用作栈或队列:
# stack
a = [1, 2, 3]
a.append(4)
while a:
a.pop()
# queue
a = [1, 2, 3]
a.append()
a.pop(0)
1.4 遍历
使用下标 / in 遍历:
a = [1, 5, 7, 3, 4, 9]
for i in range(0, len(a)):
print(a[i])
for i in a:
print(i)
可以使用 zip()
将两个列表合并遍历:
names = ['Tom', 'Carry', 'Dom']
species = ['cat', 'dog', 'squerra']
for name, species in zip(names, species):
print(name, species)
2. Set
set
是一个无序、元素不重复的集合
可以对 set 做与、或、想减等运算:
a = set([1, 8, 3, 2])
b = set([1, 5, 8])
print(a) # {8, 1, 2, 3}
print(a & b) # {8, 1}
print(a | b) # {1, 2, 3, 5, 8}
print(a - b) # {2, 3}
3. dict
3.1 创建字典
pets = {
'cat': 'Tom',
'mouse': 'Jerry',
'dog': 'Dofphy'
}
dict
可以直接从 key-value 中创建字典:
d = dict([('a', 1), ('b', 2), ('c', 3)])
也可以使用推导式创建:
squares = {x: x**2 for x in range(0, 5)}
3.2 访问键值对
可以直接使用类似列表的索引:
pets = {
'cat': 'Tom',
'mouse': 'Jerry',
'dog': 'Dofphy'
}
print(type(pets['cat'])) # str
可以使用 dict.items()
, dict.kes()
和 dict.values()
遍历:
for species, name in pets.items():
print(species, name)
for species in pets.keys():
print(species)
for name in pets.values():
print(name)
End …