我无法弄清楚这里发生了什么。在range
函数中添加引用,有点像在索引3
处创建递归列表。
>>> x = range(3)
[0, 1, 2]
>>> x.append(x)
[0, 1, 2, [...]]
>>> x[3][3][3][3][0] = 5
[5, 1, 2, [...]]
然而,当我尝试这样做时:
>>> x = range(3)
[0, 1, 2]
>>> x.append(range(3))
[0, 1, 2, [0, 1, 2]]
我可以轻松推断第二种情况的原因,但不理解在
range
函数上附加引用对附加的列表有什么影响。
range
在2和3中的行为不同。 - interjay