lst = [1, 2, 3, 4, 5]# 索引与切片lst[0] # 1lst[-1] # 5lst[1:3] # [2, 3]lst[::2] # [1, 3, 5]lst[::-1] # [5, 4, 3, 2, 1](反转)# 常用方法lst.append(6)lst.insert(0, 0)lst.extend([7, 8])lst.remove(3) # 删除第一个匹配值lst.pop() # 弹出末尾lst.pop(0) # 弹出指定位置lst.index(2)lst.count(1)lst.sort()lst.sort(key=lambda x: -x)lst.reverse()sorted(lst) # 返回新列表,不修改原列表lst.copy() # 浅拷贝# 列表推导式squares = [x**2 for x in range(10)]even = [x for x in range(20) if x % 2 == 0]flat = [x for row in matrix for x in row]
元组
t = (1, 2, 3)t = 1, 2, 3 # 括号可省略t = (42,) # 单元素元组必须有逗号t = () # 空元组# 解包a, b, c = ta, *rest = (1, 2, 3, 4) # a=1, rest=[2,3,4]_, b, _ = t # 忽略不需要的值t.count(1)t.index(2)
字典
d = {"name": "Alice", "age": 30}d = dict(name="Alice", age=30)# 访问d["name"] # "Alice"d.get("name") # "Alice"d.get("x", "默认") # 键不存在时返回默认值# 修改d["age"] = 31d.update({"age": 32, "city": "Beijing"})# 删除del d["age"]d.pop("age") # 删除并返回值d.pop("x", None) # 键不存在时不报错# 遍历for k in d: passfor k, v in d.items(): passfor v in d.values(): pass# 字典推导式squares = {x: x**2 for x in range(5)}# 合并(Python 3.9+)merged = d1 | d2d1 |= d2# 其他常用方法d.keys()d.values()d.items()d.setdefault("x", 0) # 键不存在时写入默认值并返回
集合
s = {1, 2, 3}s = set([1, 2, 2, 3]) # {1, 2, 3},自动去重s = set() # 空集合(不能用 {},那是空 dict)s.add(4)s.remove(1) # 不存在抛 KeyErrors.discard(99) # 不存在不报错s.pop() # 随机弹出# 集合运算a | b # 并集a & b # 交集a - b # 差集(a 有 b 没有)a ^ b # 对称差集a <= b # a 是 b 的子集a >= b # a 是 b 的超集# 集合推导式even_set = {x for x in range(10) if x % 2 == 0}