如果我运行以下代码:
a={}
a[input("key: ")] = input("value: ")
口译员首先提示我value input
,然后是key input
。
这背后的原因是什么?
答案 0 :(得分:6)
通常,内部表达式的顺序永远不会得到保证。在你的情况下发生的是,解释器首先找出需要放入字典的内容,然后找出它应该放在哪里。从翻译的角度来看,这是更优化的顺序。
因为在输入('值')调用期间可能会发生某些事情,例如异常,或者您可以简单地终止您的程序。那么为什么要在找到实际值之前找出放置该值的地方。
如果您关心订单,请执行以下操作:
key = input('key')
a[key] = input('value')
答案 1 :(得分:5)
来自docs:
Python从左到右评估表达式。请注意,虽然 评估一项任务,在评估之前对右侧进行评估 左手边。