簡體   English   中英

我如何從二維數組中獲取價值? -Python

[英]How can I get value from 2d array? - 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])

使用此代碼,我無法遍歷每一行,也無法循環執行。

您可以像這樣輕松地使用嵌套的for循環:

for list_ in R3:
        for number in list_:
            print(number - list_[1]) #if you know that every row has array of 2 elements

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] )選擇該行中的項目。

result = [y- x for x,y in R3]
[1, 2, 3, 33, -2, 3, 5, 6, 8]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM