我对python很新,我有一点问题。
我需要像这样组合两个2D列表:
list1= [['a','b','c'],['d','e']]
list2= [[1,2,3],[4,5]]
结果应该是这样的:
result= [['a1','b2','c3'],['d4','e5']]
答案 0 :(得分:2)
我们可以使用嵌套列表理解和两个zip(..)
s:
[ [ '%s%s'%zi for zi in zip(*z) ] for z in zip(list1,list2) ]
这将产生:
>>> list1= [['a','b','c'],['d','e']]
>>> list2= [[1,2,3],[4,5]]
>>> [ [ '%s%s'%zi for zi in zip(*z) ] for z in zip(list1,list2) ]
[['a1', 'b2', 'c3'], ['d4', 'e5']]
外部循环因此并行迭代两个列表list1
和list2
,并构造我们分配给z
的元组。对于这些元组中的每一个,我们执行第二次zip
调用zip(*z)
来构造两个子元素的元组。对于每个子元素,我们然后使用'%s%s'%zi
构建一个字符串。
或者您可以将其显式转换为字符串,例如:
[ [ ''.join(map(str,zi)) for zi in zip(*z) ] for z in zip(list1,list2) ]