Python 如何使用*args组合多个列表?
我目前有这个功能,我想使其可扩展以容纳更多列表。换句话说,无论我必须组合2个列表还是10个列表,我都想使用这个函数Python 如何使用*args组合多个列表?,python,list,args,sublist,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']] 使用: 演示: 或者,作为一种功能: de
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']]
使用:
演示:
或者,作为一种功能:
def combine_lists(*lists):
return [sum(l, []) for l in zip(*lists)]
combine_lists(l1, l2)
明亮的只需确认函数如下所示:def CombineLists(self,*list):[sum(*l,[])for l in zip(*list)]@Chris:你需要一个
return
,这是我的失误。我想压缩列表,而不是简单地将它们组合起来。例如,l1=['a'、'b'、'c']、['d'、'e'、'f']]和l2=['a'、'b'、'c']、['d'、'e'、'f']]。结果应该是:['a'、'b'、'c'、'a'、'b'、'c']、['d'、'e'、'f'、'd'、'e'、'f']@Chris:现在我可以使用这个示例了。:-)更新以证明这正是代码所做的。我只是不明白。我得到:['a',b',c'],['d',e',f'][[a',b',c'],['d',e',f']]是L1
到L4
的样本输出还是样本输入?它们不是输入,它们是样本输入,它们为我工作。在我定义了l1和l2之后,我使用[l1+l2表示l1,zip中的l2(l1,l2)]您在这里使用了令人困惑的名称;输入为小写l
,循环变量为大写l
。您输入的l1
和l2
名称是否与您帖子中的l1
和l2
列表相同?
>>> 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)