Python字典是如何执行的?

时间:2017-04-12 13:23:27

标签: python dictionary input python-internals

如果我运行以下代码:

a={}
a[input("key: ")] = input("value: ")

口译员首先提示我value input,然后是key input

这背后的原因是什么?

2 个答案:

答案 0 :(得分:6)

通常,内部表达式的顺序永远不会得到保证。在你的情况下发生的是,解释器首先找出需要放入字典的内容,然后找出它应该放在哪里。从翻译的角度来看,这是更优化的顺序。

因为在输入('值')调用期间可能会发生某些事情,例如异常,或者您可以简单地终止您的程序。那么为什么要在找到实际值之前找出放置该值的地方。

如果您关心订单,请执行以下操作:

key = input('key')
a[key] =  input('value')

答案 1 :(得分:5)

来自docs

  

Python从左到右评估表达式。请注意,虽然   评估一项任务,在评估之前对右侧进行评估   左手边。