python - 如何从元组中获得持久散列?

Dar*_*res 7 python hash tuples list

我需要从元组生成哈希。理想情况下,我希望能够从列表中完成它,但这是不可能的。我需要一些可以使用哈希来生成元组的东西,最终以正确的顺序访问原始列表(项目将是字符串)。

这就是我想要散列的内容

l = ['x', 'y', 'z']
t = tuple(l)
Run Code Online (Sandbox Code Playgroud)

我尝试使用hash(),但最终没有在 Python 会话中给出相同的哈希值,而这正是我所需要的。

我需要哈希值,因为我想根据该列表创建一个文件,并将哈希值作为文件名。然后我想查找文件名并能够仅使用哈希来访问列表项(以正确的顺序)。

我的理解是这是可能的,但我可能是错的。有任何想法吗?

Ama*_*dan 4

您可以使用 MD5,它速度很快,并且对于相同的输入始终会给出相同的结果。

import hashlib
    
t = ('x', 'y', 'z')

m = hashlib.md5()
for s in t:
    m.update(s.encode())
fn = m.hexdigest() # => 'd16fb36f0911f878998c136191af705e'
Run Code Online (Sandbox Code Playgroud)

正如 user2357112 所说,您无法lfn;重建 但如果l保存在带有 MD5 哈希值的文件中,您将能够读取它。