假设我有一个函数pack()
,它接受任意数量的参数。
我还有两个列表,L1=[1,2]
和L2=[3,4]
我可以致电pack(5, 6, *L1)
或致电pack(5, 6, *L2)
,但致电pack(5, 6, *L1, *L2)
失败。如何获得等效的pack(5, 6, 1, 2, 3, 4)
?
答案 0 :(得分:7)
>>> from itertools import chain
>>> pack(5, 6, *chain(L1, L2))
答案 1 :(得分:2)
这是一个非常简单的解决方案
>>> def pack(*args):
print 'in pack'
>>> L1 = [1,2]
>>> L2 = [3,4]
>>> pack(5,6,*L1)
in pack
>>> pack(5,6,*L1,*L2)
SyntaxError: invalid syntax
>>> pack(5,6,*(L1 + L2))
in pack
答案 2 :(得分:1)
我看到这是一个旧线程,但是从python 3开始,您可以完美地multiple unpacking而无需链接:
>>> L1 = [1, 2]
>>> L2 = [3, 4]
>>> print(5, 6, *L1, *L2)
5 6 1 2 3 4