【问题标题】:Cryptic list object resentation in Python as [...] [duplicate]Python中的神秘列表对象表示为[...] [重复]
【发布时间】:2021-05-11 00:56:38
【问题描述】:

当我尝试使用列表append 时,我遇到了这个看不见的列表对象,我努力搜索但找不到太多信息。这就是正在发生的事情:

L = ['dinosaur']
L.append(('theropoda', L))
print(L)
# ['dinosaur', ('theropoda',   [...])]

问题 - 这里的 [...] 是什么意思?谢谢。

【问题讨论】:

  • 这能回答你的问题吗? sololearn.com/Discuss/1856497/…
  • 我相信它表示一个循环列表,你将 L 附加到 L
  • 感谢您的提示。很高兴有专家在这里提供帮助。你想把它放在答案中以便我投票吗? (顺便说一句 - 有官方文档吗?)
  • Python 在检测到对象中的循环时打印一个 [...]。当一个集合对象包含对自身的引用时......'并且它试图避免陷入无限循环。好问题。
  • 这个问题需要一个更好的标题

标签: python-3.x list


【解决方案1】:

如 cmets 中所述,Python 不会尝试在 list 的表示中包含循环/递归引用。

看来__repr__ 函数(也被lists 用来创建打印字符串)是通过reprlib with recursive support 实现的。没有它,你最终会得到一个RecursionError 来输出list,Python 必须包含列表的嵌套版本,这也需要嵌套版本,等等。相反,它会输出 ... 的特殊值,这表明它是一个递归引用。

【讨论】:

  • 谢谢,有官方文档吗?链接?
  • 我的答案中的链接是官方 Python 文档的一部分,这是您需要的吗?
猜你喜欢
  • 2014-06-14
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 2012-08-18
  • 2011-04-11
  • 1970-01-01
  • 2017-06-07
  • 1970-01-01
相关资源
最近更新 更多