【发布时间】:2020-03-18 11:07:57
【问题描述】:
在调试 python 程序时,我必须在日志文件上打印一个巨大字典的值。我复制粘贴了这个值,当我在 python 2 解释器中分配它时,我得到了SyntaxError: invalid syntax。什么?这怎么可能?仔细一看,我发现文件中的字典是这样的:
{'one': 1, 'two': 2, 'three': {...}}
three 的键值是 {...},这导致了无效的语法错误。将此字典粘贴到 python 2 解释器会引发 Syntax Error 异常。将其粘贴到 python 3 解释器上,分配的值结果为{'one': 1, 'two': 2, 'three': {Ellipsis}}。
那么,{...} 在 python 2 中的含义是什么?为什么即使在 python 2 脚本的日志文件中打印了该值,该语法在 python 2 中也是无效的?
【问题讨论】:
-
也许记录器缩写了输出......!?然后它变成一个无效的文字。 Python 3 中的
...恰好是一个有效的文字,但显然可能不是原始值。 -
看起来你把字典作为它自己的值之一放在里面。
-
正如@deceze 指出的那样,这是让您知道字典可以嵌套的标准方式,例如与键关联的值可以是另一个字典等(符号 pbbly 来自无限系列,如 1+2+3 .....)
-
@khelwood 是的,
d['three']给了d。字典引用了它自己。谢谢,cmets 指出了正确的方向。
标签: python dictionary printing ellipsis