如何使用* args组合多个列表?

时间:2014-02-27 18:33:58

标签: python list args sublist

我目前有这个功能,我希望可以扩展以获取更多列表。换句话说,我想使用此功能是否必须组合2个列表或10个列表。

l1 = [['a','b','c'],['d','e','f']] 
l2 = [['A','B','C'],['D','E','F']]

[L1 + L2 for L1, L2 in zip(l1, l2)]

结果应为:

[['a','b','c','A','B','C'],['d','e','f','D','E','F']]

1 个答案:

答案 0 :(得分:3)

使用:

[sum(l, []) for l in zip(*lists)]

演示:

>>> l1 = [['a', 'b', 'c'], ['d', 'e', 'f']]
>>> l2 = [['A', 'B', 'C'], ['D', 'E', 'F']]
>>> lists = (l1, l2)
>>> [sum(l, []) for l in zip(*lists)]
[['a', 'b', 'c', 'A', 'B', 'C'], ['d', 'e', 'f', 'D', 'E', 'F']]

或作为功能:

def combine_lists(*lists):
    return [sum(l, []) for l in zip(*lists)]

combine_lists(l1, l2)