如何修复 Python 3 中字典处理的顺序?

How to fix the order of dictionary handling in Python 3?

有没有办法可靠地修复 Python 3 中字典处理的顺序,即以可预测的顺序建立键和值的迭代?

出于调试目的并重现据推测是基于 python 3.3 和 3.4 中的字典访问的故障,我需要以某种方式使字典迭代可预测。我的意思是我想修复在 Python 程序开始时执行任何迭代的方式。这样多次启动程序,调用 dict.items()dict.keys()dict.values() 总是产生相同顺序的元素。更重要的是,通过设置哈希函数的某种种子值来更改此顺序会很好。我该怎么做?

这仅用于 调试 ,我不想也不能使用 sorted(dict.keys())OrderedDict 之类的东西。谢谢!

你应该看看 PYTHONHASHSEED 环境变量:

https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHASHSEED

将其设置为固定整数,然后您的哈希种子是确定性的。