2

我在将两个列表合并为一个时遇到了一些麻烦。我认为有一个简单的解决方案,但我被困了几个小时。

我的两个列表列表例如:

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'])]

非常感谢您在这个问题上的任何帮助!!!

也许像如何向数组添加额外的行和列?会工作,但我想有一个更简单的解决方案。

4

4 回答 4

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']]
于 2013-04-19T13:53:57.793 回答
0
[sum(ai_bi, []) for ai_bi in zip(a, b)]

扩展到 n 个列表列表:

L = (a, b, ...)
[sum(el, []) for el in zip(*L)]
于 2013-04-19T13:26:51.373 回答
0

如果两个列表的长度相同,您可以使用一个简单的循环:

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']]
于 2018-04-09T22:25:28.807 回答
-1

如果您的列表具有相同的长度:

c = []
for idx in range(len(a)):
    c.append(a[idx]+b[idx])

虽然不是很优雅。

于 2013-04-19T13:30:02.223 回答