解包
Python 里的 * 和 ** 解包用法简介:
1. 列表(元组)解包:*
lst = [1, 2, 3]
a, b, c = lst # a=1, b=2, c=3
# *用于参数收集
def foo(a, b, c):
print(a, b, c)
foo(*lst) # 等价于 foo(1, 2, 3)
2. 字典解包:**
d = {'x': 10, 'y': 20}
def bar(x, y):
print(x + y)
bar(**d) # 等价于 bar(x=10, y=20)
3. 变量收集
a, *b, c = [1, 2, 3, 4, 5]
# a=1, b=[2,3,4], c=5
4. 合并/拆解容器
lst1 = [1, 2]
lst2 = [3, 4]
merged = [*lst1, *lst2] # [1, 2, 3, 4]
dict1 = {'a': 1}
dict2 = {'b': 2}
merged_dict = {**dict1, **dict2} # {'a': 1, 'b': 2}
总结
*:序列解包(列表/元组)**:字典解包
常用于函数参数传递、容器合并等场景。