首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么dict(enumerate(example))返回一个随机字典?

为什么dict(enumerate(example))返回一个随机字典?
EN

Stack Overflow用户
提问于 2018-11-01 08:01:10
回答 1查看 45关注 0票数 0

当我运行这个简单的程序时:

代码语言:javascript
复制
example: {'left', 'right', 'up', 'down'}
new_dict = dict(enumerate(example))
print(new_dict)

每次运行都会产生不同的(索引、值)对。例如:

代码语言:javascript
复制
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'}

为什么会这样呢?

EN

回答 1

Stack Overflow用户

发布于 2018-11-01 08:47:06

从docs https://docs.python.org/3/reference/datamodel.html#object.

注意:默认情况下,strbytesdatetime对象的__hash__()值是用不可预测的随机值“加盐”的。尽管它们在单个Python进程中保持不变,但在Python的重复调用之间是不可预测的。

更改哈希值会影响字典、集合和其他映射的迭代顺序。

版本3.3中的更改:默认情况下启用散列随机化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53093504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档