gpt4 book ai didi

python - python中变量和打印变量的输出之间的区别

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:58 25 4
gpt4 key购买 nike

我正在学习“艰难地学习 Python”一书中的练习 40。我刚刚注意到以下几点:

In [15]: stuff
Out[15]:
{1: 'Wow',
2: 'Neato',
'age': 36,
'city': 'San Francisco',
'height': 74,
'name': 'Zed'}

In [16]: print stuff
{'city': 'San Francisco', 2: 'Neato', 'name': 'Zed', 1: 'Wow', 'age': 36, 'height': 74}

为什么字典的条目在两个输出中的顺序不同?

最佳答案

字典中元素的顺序是不可靠的,除非你使用像 OrderedDict 这样的东西。由于性能等原因,它们会四处移动。Python 不保证元素以任何特定顺序出现,因此您永远不应依赖它。

在这里,涉及到不同的代码路径——__repr____str__——所以我猜其中之一是以不同的方式查看字典,在一些方式。但简而言之,字典中元素的排序本质上是不可靠的,您应该这样对待它。

编辑:事实上,正如在这个答案下面的评论中所讨论的,recent versions of Python effectively randomize the order在逐个运行的基础上。该实现依赖于 hash 函数的输出,出于安全原因,它是 seeded with a random value .

关于python - python中变量和打印变量的输出之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24360435/

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