Python哈希结构

Python哈希结构,python,hash,Python,Hash,我得到一个输入N*M矩阵(元组的元组),值从1到9 散列这个结构的最好方法是什么,这样我就可以得到每8个值的位置(x,y)?(8例如,可以是5或7…)“Hash”是一个错误的词。您只需要在二维数组中搜索特定值。也许是这样的 height = len(data) width = len(data[0]) eights = [(x, y) for y in range(height) for x in range(width) if data[x][y] == 8] “Hash”这个词用错了。您只

我得到一个输入N*M矩阵(元组的元组),值从1到9

散列这个结构的最好方法是什么,这样我就可以得到每8个值的位置(x,y)?(8例如,可以是5或7…)

“Hash”是一个错误的词。您只需要在二维数组中搜索特定值。也许是这样的

height = len(data)
width = len(data[0])
eights = [(x, y) for y in range(height) for x in range(width) if data[x][y] == 8]
“Hash”这个词用错了。您只需要在二维数组中搜索特定值。也许是这样的

height = len(data)
width = len(data[0])
eights = [(x, y) for y in range(height) for x in range(width) if data[x][y] == 8]

由于您希望找到5s、7s和8s的位置,因此将所有位置存储在一个dict中,一次通过矩阵,而不是一次通过5s、一次通过7s等,可能会更有效

loc = {}    
for x in range(N):
    for y in range(M):
        loc.setdefault(matrix[x][y], []).append((x,y))

由于您希望找到5s、7s和8s的位置,因此将所有位置存储在一个dict中,一次通过矩阵,而不是一次通过5s、一次通过7s等,可能会更有效

loc = {}    
for x in range(N):
    for y in range(M):
        loc.setdefault(matrix[x][y], []).append((x,y))

但是我想用O(1)来访问,因为我的程序总是在更改矩阵中搜索值,而我想用O(1)来访问,因为我的程序总是在更改矩阵中搜索值,而我想用O(1)来访问,因为我的程序总是在更改矩阵中搜索值。ICT访问是O(1)。请参阅。但我希望使用O(1)进行访问,因为我的程序始终在更改矩阵中搜索值。ICT访问是O(1)。看。