您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python dict文字会按编写顺序进行求值吗?

Python dict文字会按编写顺序进行求值吗?

字典评估顺序 与书面顺序相同,但是存在一个突出的错误,即在 之前评估 。(该错误最终在Python 3.5中得以修复)。 __

参考文档引用

Python从左到右计算表达式。

并从错误报告中:

运行以下代码显示"2 1 4 3",但在参考手册http://docs.python.org/reference/expressions.html#expression- 列出了评估顺序为{expr1: expr2, expr3: expr4}

def f(i):
    print i
    return i

{f(1):f(2), f(3):f(4)}

Guido说:

我坚持以前的观点:代码应该固定。看起来不像是给我的任务。

错误已在Python 3.5中修复,因此在Python 3.4及更早版本中,仍会在键之前评估值:

>>> import sys
>>> sys.version_info
sys.version_info(major=3, minor=4, micro=2, releaselevel='final', serial=0)
>>> def f(i):
...     print(i)
...     return i
... 
>>> {f(1):f(2), f(3):f(4)}
2
1
4
3
{1: 2, 3: 4}

由于您的代码不需要先评估键,因此可以保证您的代码可以正常工作。即使在每个对应的值之后评估键,键-值对仍将按顺序评估。

python 2022/1/1 18:27:13 有185人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶