当我运行这个简单的程序时:
example: {'left', 'right', 'up', 'down'}
new_dict = dict(enumerate(example))
print(new_dict)每次运行都会产生不同的(索引、值)对。例如:
MacBook-Air:Desktop mymac$ python3 example.py
{0: 'right', 1: 'down', 2: 'left', 3: 'up'}
MacBook-Air:Desktop mymac$ python3 example.py
{0: 'left', 1: 'up', 2: 'down', 3: 'right'}
MacBook-Air:Desktop mymac$ python3 example.py
{0: 'down', 1: 'left', 2: 'right', 3: 'up'}为什么会这样呢?
发布于 2018-11-01 08:47:06
从docs https://docs.python.org/3/reference/datamodel.html#object.
注意:默认情况下,
str、bytes和datetime对象的__hash__()值是用不可预测的随机值“加盐”的。尽管它们在单个Python进程中保持不变,但在Python的重复调用之间是不可预测的。
更改哈希值会影响字典、集合和其他映射的迭代顺序。
版本3.3中的更改:默认情况下启用散列随机化。
https://stackoverflow.com/questions/53093504
复制相似问题