我刚刚获得了一些python脚本的奇怪输出:
[[(7, 6), (6, 4), (7, 2)], [...], [...], [...], [(7, 6), (8, 4), (7, 2)], [...], [...], [...], [...], [...], [...], [...]]
输出应该是元组列表的列表。但我不知道为什么会出现。
什么意思?
我不认为它是一个空列表,因为空列表是[]。这些可能是重复的吗?
答案 0 :(得分:26)
这是一个递归参考。你的清单包含自己,或者至少存在某种循环。
示例:
x = []
x.insert(0, x)
# now the repr(x) is '[[...]]'.
列表的内置repr
检测到这种情况,并且不会尝试在子列表上递归(正常情况下),因为这会导致无限递归。
请注意...
并不一定告诉您引用了哪个列表:
y, z = [], []
x = [y, z]
y.insert(0, z)
z.insert(0, y)
# looks the same as it would if y contained y and z contained z.
所以repr
并不是列表的完整序列化格式。
至于为什么要获得它们:我们不是通灵的,除非我们看到代码,否则无法解决代码问题。