您可以使用该repr()
函数来获取数组(或实现转换为表示的任何对象)的(Unicode)字符串表示。然后将字符串编码为 UTF-8(使用 UTF-8 时,字节顺序在任何地方都是相同的)。可以按照上面的尝试对生成的字节进行散列:
#!python3
import hashlib
def hashFor(data):
# Prepare the project id hash
hashId = hashlib.md5()
hashId.update(repr(data).encode('utf-8'))
return hashId.hexdigest()
if __name__ == '__main__':
data1 = ['abc', 'de']
data2 = ['a', 'bcde']
print(hashFor(data1) + ':', data1)
print(hashFor(data2) + ':', data2)
它打印在我的控制台上:
c:\tmp\___python\skerit\so17412304>py a.py
d26d27d8cbb7c6fe50637155c21d5af6: ['abc', 'de']
dbd5ab5df464b8bcee61fe8357f07b6e: ['a', 'bcde']