python - 为什么在打印时将列表附加到自身显示 [...] ?

标签 python list python-2.7 python-3.x

当我使用以下代码附加列表本身时。

a = [1, 2, 3, 4]
print a

a.append(a)
print a

我期望输出是...

[1, 2, 3, 4]
[1, 2, 3, 4, [1, 2, 3, 4]]

但它是这样的......

[1, 2, 3, 4]
[1, 2, 3, 4, [...]]

为什么?

最佳答案

您正在将 a 添加到 a 本身。 a 的第二个元素只是a。因此,如果它尝试打印 a,如您所愿

  • 它会打印第一个元素 [1, 2, 3, 4]
  • 它会打印第二个元素,实际上是 a

    • 它会打印第一个元素 [1, 2, 3, 4]
    • 它会打印第二个元素,实际上是 a

      • 它会打印第一个元素 [1, 2, 3, 4]
      • 它会打印第二个元素,实际上是 a ...

你看到它是怎么回事了,对吧?它将无限地这样做。因此,当存在这样的循环引用时,Python 会将其表示为一对方括号内的省略号,[...],仅。

如果你想插入 a 的副本,那么你可以使用 slicing像这样创建一个新列表

>>> a = [1, 2, 3, 4]
>>> a.append(a[:])
>>> a
[1, 2, 3, 4, [1, 2, 3, 4]]

关于python - 为什么在打印时将列表附加到自身显示 [...] ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29182841/

相关文章:

python - Pandas 旋转/堆叠/ reshape

java - 使用RxJava观察List "add"和 "remove" Action

c# - 您可以通过使用其构造函数来创建嵌套列表的深拷贝吗?

python-2.7 - 创建环境模块以在 hpc 节点上使用 opencv-python

python - 重写实例方法的 getattribute 并使用方法输入变量

Mac 上的 Python 版本

python - Jupyter 通过 LaTeX 下载为 PDF 在空白处切断代码

python - 将 Python 字典转换为列表 [复杂]

python - 从expect脚本调用python脚本时出错

python - 如何巧妙地重写曾经使用 XSLT 的 python 脚本?