将两个列表列表合并为一个我遇到了一些麻烦。我认为有一个简单的解决方案,但我被困了几个小时。
我的两个列表列表例如:
a=[['1','2'],['3','4']]
b=[['5','6'],['7','8']]
我试图获得的是:
c=[['1','2','5','6'],['3','4','7','8']]
但我不知道列表有多少行和列。
我尝试使用zip
命令,但它产生了类似的内容:
[(['1','2'],['5','6']),(['3','4'],['7','8'])]
非常感谢你对这个问题的任何帮助!!!
也许How can I add an additional row and column to an array?之类的东西可行,但我想有一个更简单的解决方案。
答案 0 :(得分:2)
>>> a=[['1','2'],['3','4']]
>>> b=[['5','6'],['7','8']]
>>> [x + y for x, y in zip(a, b)]
[['1', '2', '5', '6'], ['3', '4', '7', '8']]
答案 1 :(得分:1)
如果两个列表的长度相同,则可以使用一个简单的循环:
listone = [['1','2'],['3','4']]
listtwo = [['5','6'],['7','8']]
newlist = []
for i in range(0, len(data)):
newlist.append(listone[i] + listtwo[i])
print(newlist)
[['1','2','5','6'],['3','4','7','8']]
答案 2 :(得分:0)
[sum(ai_bi, []) for ai_bi in zip(a, b)]
缩放为n个列表:
L = (a, b, ...)
[sum(el, []) for el in zip(*L)]
答案 3 :(得分:-1)
如果您的列表长度相同:
c = []
for idx in range(len(a)):
c.append(a[idx]+b[idx])
虽然不是很优雅。