1

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

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

4

3 回答 3

3

由于您想找到 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))
于 2012-11-23T03:12:58.953 回答
1

“哈希”是错误的词。您只想在二维数组中搜索特定值。也许像这样的东西......

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]
于 2012-11-23T03:04:04.670 回答
0
[(x,y) for x in range(N) for y in range(M) if matrix[x][y] == 8]
于 2012-11-23T03:03:40.913 回答