Python列表的循环引用问题

5
有人能解释这个吗?
>>> x = x[0] = [0]
>>> x
[[...]]
>>> x is x[0]
True
>>> x[0][0][0][0][0][0][0]
[[...]]
>>> x in x
True

[...]是什么?


就我个人而言,“x = x[0] = [0]”这种写法很令人困惑。更清晰的做法是“x = []; x.append(x)”。 - wjandrea
3个回答

15

这只是Python在告诉你存在循环引用;它很聪明,不会进入无限循环尝试打印它。


4

iPython可以做到这一点:

[<列表id=38505216上的递归>]

这是同样的事情;解释器告诉您有一个递归数据结构。


3

这是由生成结构表示的方法输出的。它代表了一个递归结构,因为它可以无限嵌套,所以省略了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接