python拆包与装包
当变量个数与元素个数一致时,只有拆包
list1 = [1, 2, 3]
a, b, c = list1
print(a, b, c)
运行结果:
当变量个数与元素个数不一致时,先拆包,再把剩余元素装包
list1 = [1, 2, 3]
a, *b = list1 # 拆包后,把1赋值给a,把剩余元素装包成列表赋值给b
print(a, b)
运行结果:
也可以用 * 拆包
list1 = [1, 2, 3]
a, *b = list1 # 拆包后,把1赋值给a,把剩余元素装包成列表赋值给b
print(a, b)
print(*b) # 用*对b拆包
print(*list1)
运行结果:
拆包与装包在函数中的应用
def func1(a, *args, **kwargs):
print(a)
print(args)
print(type(args))
print(kwargs)
print(type(kwargs))
func1(1, [2, 3, 4], k=1, m=2)
运行结果:
函数传参时,先进行拆包,在第二个参数时,列表拆包后再装包为元组(tuple)args,第三个参数时,把键值对类型的参数拆包然后装包成字典**args。