调用函数时解压缩多个列表

时间:2014-07-18 16:33:09

标签: python python-2.7

假设我有一个函数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)

3 个答案:

答案 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