当我使用以下代码附加列表本身时。
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/