そのため、2次元配列があるプロジェクトに取り組んでおり、1次元のインデックスを知らなくても、2次元に配置された要素の場所を見つける必要があります。
パーツを繰り返し処理して、値エラーではないかどうかを確認できることはわかっていlist[x].index(y)
ますが、コードの見栄えが大幅に低下するため、2dのようなより良い方法があるかどうかを知りたいと思いました。 .indexメソッド?
車輪の再発明をしたくないと仮定すると、この質問にはあなたが探している答えがあると思います。配列内の何かの最初のインデックスを返すNumpy関数はありますか?
import numpy as np
a = np.array([[1,2,4],[4,5,6]])
item = 4
row_indices, col_indices = np.where(a == item)
このようなことを試してください。
>>> l = [[1,2,3],[4,5],[6,7,8,9]]
>>> x = 1
>>> y = 2
>>> v = l[x][y] if len(l) > x and len(l[x]) > y else None
>>> v is None
True
すべての行の長さが等しい場合は、次のコードを使用できます。
index_2d = [item for row in list for item in row].index(y)
index_row = index_2d / ROW_LENGTH
index_col = index_2d % ROW_LENGTH