gpt4 book ai didi

python - 两个相同的字典在腌制后有所不同(通过使用 diff)

转载 作者:太空宇宙 更新时间:2023-11-03 21:24:15 34 4
gpt4 key购买 nike

我有一个字典,其键是像 (int, str, int, str, int) 这样的元组,相应的值是相同大小的 float 列表。

我用同一个脚本对字典进行了两次腌制:

import pickle
with open(name, 'wb') as source:
pickle.dump(the_dict, source)

对于两个生成的二进制文件 test_1test_2,我运行

diff test_1 test_2

在终端(我使用的是 macOS)中查看是否可以使用 diff 来区分。然而,我收到了

Binary files test_1 and test_2 differ
为什么?同一个字典是否以不同的方式进行腌制?这是否意味着我不能使用 diff 来判断两个字典是否相同?

最佳答案

根据您使用的 Python 版本,v3.6 之前的 Python 版本不记得插入顺序。 Python v3.6 made this an implementation detail v3.7 使其成为一种语言功能。

为了向后兼容,您不应依赖字典来记住插入键的顺序。相反,您可以使用 Collections 模块中的 OrderedDict。

此外,在 pickled dict 数据上使用 diff 可能会显示数据中的差异,即使实际的字典是等效的 - 因为 dict 与列表不同,通常不保证顺序状态(如果情况并非如此,请参阅上文) .

关于python - 两个相同的字典在腌制后有所不同(通过使用 diff),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53967152/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com