需要澄清python中列表的扩展函数。请检查以下代码

时间:2015-06-18 07:40:37

标签: list python-3.x

    >>> a = [1,2,3]
    >>> b = [1,2]
    >>> a.append(b)
    >>> a
    [1, 2, 3, [1, 2]]
    >>> b
    [1, 2]
    >>> b.extend(a)
    >>> b
    [1, 2, 1, 2, 3, [...]]
    >>> b[5]
    [1, 2, 1, 2, 3, [...]]

这里的[...]是什么?这让我很困惑。我的做法有什么问题? 有人可以澄清我的怀疑吗?

1 个答案:

答案 0 :(得分:3)

您创建了一个循环引用。 a包含b引用的相同列表。通过b扩展ab现在包含对自身的引用。

Python使用...显示这样的引用,而不是进入无限循环。打印b[5]再次打印相同的对象,因此输出自然会再次相同。