如何从二维数组获得价值? - Python

时间:2017-09-02 23:47:53

标签: python

我有一个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])

使用此代码,我无法计算每一行,也无法循环执行。

3 个答案:

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