总结两个2-D列表

时间:2013-08-15 22:59:31

标签: python-3.x

所以这有点难过我。我觉得这应该是一个简单的问题。 可以说我有这两个列表

a = [[3, 4], [4, 5]]
b = [[1, 2], [4, 6]]

我正在尝试这样它会返回每个相应元素的两个二维列表的总和,如此

c = [[4, 6], [8, 11]]

我很确定我在循环中迷路了。我只是尝试使用嵌套循环来产生答案,任何建议?我正在尝试几种不同的东西,所以我的代码不完全完整或一成不变,并且可能会在有人响应的时候改变,所以我不会在这里留下代码。我正在尝试!

3 个答案:

答案 0 :(得分:1)

你可以尝试使用enumerate对嵌套for循环进行一些变化(这将为你提供适当的索引以便与其他2d数组进行比较):

a = [[3, 4], [4, 5]]
b = [[1, 2], [4, 6]]

编辑:我没有看到你想要填充一个新列表,所以我把它放在那里:

>>> c = []
>>> for val, item in enumerate(a):
        newvals = []
        for itemval, insideitem in enumerate(item):
           newvals.append(insideitem + b[val][itemval])
         c.append(newvals)
         newvals = []

结果:

>>> c
[[4, 6], [8, 11]]

答案 1 :(得分:0)

使用numpy:

import numpy as np

a = [[3, 4], [4, 5]]
b = [[1, 2], [4, 6]]
c = np.array((a,b))
np.sum(c, axis=0)

答案 2 :(得分:0)

我知道这是一个老问题,但是遵循嵌套循环的代码可以完全按照OP的要求工作:

sumlist = []
for i, aa in enumerate(a):
    for j, bb in enumerate(b): 
        if i == j: 
            templist = []
            for k in range(2):
                templist.append(aa[k]+bb[k])
            sumlist.append(templist)
            templist = []
print(sumlist)

输出:

[[4, 6], [8, 11]]