Python 哈希结构



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

散列此结构的最佳方法是什么,以便我可以获得每 8 个值的位置 (x,y)?(例如,8 可以是 5 或 7...

由于您想查找 5s 和 7s 和 8s 的位置,因此将所有位置存储在字典中可能更有效,一次通过矩阵,而不是一次传递 5s,一次传递 7 秒,依此类推......

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

"哈希"是错误的词。您只想在 2D 数组中搜索特定值。也许像这样...

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]
[(x,y) for x in range(N) for y in range(M) if matrix[x][y] == 8]

最新更新