0

所以这有点难倒我。我觉得这应该是一个简单的问题。假设我有这两个列表

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

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

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

我很确定我迷失在循环中。我只是想使用嵌套循环来产生答案,有什么建议吗?我正在尝试几种不同的东西,所以我的代码并不完全完整或一成不变,并且可能会在有人回复时发生变化,所以我不会在这里留下代码。不过我在努力!

4

3 回答 3

1

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

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]]
于 2013-08-15T23:09:00.723 回答
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)
于 2013-08-15T23:08:53.707 回答
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]]
于 2019-05-28T17:48:11.637 回答