Python字典是如何执行的?

lat*_*ish 4 python dictionary input python-internals

如果我运行以下代码:

a={}
a[input("key: ")] = input("value: ")
Run Code Online (Sandbox Code Playgroud)

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

这背后的原因是什么?

Vla*_*lad 6

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

因为在输入('值')调用期间可能会发生某些事情,例如异常或者您可以简单地终止您的程序.那么为什么要在找到实际拥有它之前找到它的价值呢?

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

key = input('key')
a[key] =  input('value')
Run Code Online (Sandbox Code Playgroud)


Kar*_*ath 5

来自文档:

Python从左到右评估表达式.请注意,在评估分配时,右侧在左侧之前进行评估.