我有一个2D数组,每行有2个元素:
R3 = [
[[0, 4, 4, ...]
[[0, 0, 0, ...]
[[4, 0, 0, ...]
]
这是2D数组元素的位置。
whereR3 = [
[0, 1],
[0, 2],
[1, 4],
[1, 34],
[2, 0],
[2, 5],
[3, 8],
[3, 9],
[4, 12],
]
我想从第一个元素中减去一行的第二个元素,但瓶颈是从2D数组中获取某个位置的值。以下是我尝试过的内容:
print(R3[0][1] - R3[0][2])
使用此代码,我无法计算每一行,也无法循环执行。
答案 0 :(得分:1)
您可以轻松地使用嵌套for循环:
for list_ in R3:
for number in list_:
print(number - list_[1]) #if you know that every row has array of 2 elements
答案 1 :(得分:1)
Python索引从0开始,因此您需要选择位置0和1而不是1和2.您可以在for
循环中轻松完成此操作:
for row in whereR3:
print(row[0] - row[1])
如果您想要一个新列表,其中每行已折叠为row[0] - row[1]
,您可以使用列表理解:
collapsed_R3 = [row[0] - row[1] for row in whereR3]
执行时,collapsed_R3
将等于:
[-1, -2, -3, -33, 2, -3, -5, -6, -8]
获取特定行的折叠值(例如,第0行):
whereR3[0][0] - whereR3[0][1]
等于-1
。第一个切片(两侧为[0]
)选择行,第二个切片([0]
和[1]
)正在选择行中的项目。
答案 2 :(得分:0)
result = [y- x for x,y in R3]
[1, 2, 3, 33, -2, 3, 5, 6, 8]