Python哈希结构

时间:2012-11-23 03:01:14

标签: python hash

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

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

3 个答案:

答案 0 :(得分: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))

答案 1 :(得分:1)

“Hash”对此是错误的。您只想在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]

答案 2 :(得分:0)

[(x,y) for x in range(N) for y in range(M) if matrix[x][y] == 8]