将一些列附加到列表矩阵列表中

时间:2013-04-19 13:16:40

标签: python list append

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

我的两个列表列表例如:

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?之类的东西可行,但我想有一个更简单的解决方案。

4 个答案:

答案 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])

虽然不是很优雅。