所以这有点难倒我。我觉得这应该是一个简单的问题。假设我有这两个列表
a = [[3, 4], [4, 5]]
b = [[1, 2], [4, 6]]
我正在尝试这样它会返回每个对应元素的两个二维列表的总和,如下所示
c = [[4, 6], [8, 11]]
我很确定我迷失在循环中。我只是想使用嵌套循环来产生答案,有什么建议吗?我正在尝试几种不同的东西,所以我的代码并不完全完整或一成不变,并且可能会在有人回复时发生变化,所以我不会在这里留下代码。不过我在努力!
所以这有点难倒我。我觉得这应该是一个简单的问题。假设我有这两个列表
a = [[3, 4], [4, 5]]
b = [[1, 2], [4, 6]]
我正在尝试这样它会返回每个对应元素的两个二维列表的总和,如下所示
c = [[4, 6], [8, 11]]
我很确定我迷失在循环中。我只是想使用嵌套循环来产生答案,有什么建议吗?我正在尝试几种不同的东西,所以我的代码并不完全完整或一成不变,并且可能会在有人回复时发生变化,所以我不会在这里留下代码。不过我在努力!
您可以尝试使用 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]]
使用 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)
我知道这是一个老问题,但下面的嵌套循环代码完全符合 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]]