是否按顺序评估Python字典文字?

3 python dictionary

当我跑这个

import itertools

bar = itertools.count(1).next

print {'a': bar(), 'b': bar(), 'c': bar()}
Run Code Online (Sandbox Code Playgroud)

在CPython上,我明白了{'a': 0, 'b': 1, 'c': 2}.这在实施中是否一致和/或在任何地方都有记录?请问a,bc不断赋予数值无序?

ang*_*ela 6

您可以在此处找到您的问题的答案(我没有足够的声誉将其添加为评论).

总而言之,"字典评估顺序应与书面评估顺序相同,但是在密钥之前评估值时存在一个突出的错误."

  • 在这里,有一个upvote所以你可以在下次发表评论. (2认同)
  • 评论级别解锁 - 我看到前方光明的日子.谢谢!:) (2认同)

Chr*_*ian 5

来自Python Docs(强调我的):

如果给出了逗号分隔的键/数据对序列,则从左到右计算它们以定义字典的条目:每个键对象用作字典中的键以存储相应的数据....

因此,将始终按顺序评估对.但不要混淆元素的顺序.