考虑以下几点:
In [179]: a = [1, 2]
In [180]: a+=a
In [181]: a
Out[181]: [1, 2, 1, 2]
In [182]: a.append(a)
In [183]: a
Out[183]: [1, 2, 1, 2, [...]]
In [184]: a[5]
-----------------------------------------------
IndexError Trace
C:\Users\Marcin\Documents\oneclickcos\oneclickc
----> 1 a[5]
IndexError: list index out of range
In [185]: a[4]
Out[185]: [1, 2, 1, 2, [...]]
In [186]: a[3]
Out[186]: 2
In [187]: a[4]
Out[187]: [1, 2, 1, 2, [...]]
In [188]: a
Out[188]: [1, 2, 1, 2, [...]]
In [189]: a[4][3]
Out[189]: 2
In [190]: a[4][4]
Out[190]: [1, 2, 1, 2, [...]]
In [191]: a[4][5]
-----------------------------------------------
IndexError Trace
C:\Users\Marcin\Documents\oneclickcos\oneclickc
----> 1 a[4][5]
IndexError: list index out of range
In [192]: a[4][4]
Out[192]: [1, 2, 1, 2, [...]]
In [193]: a = [1, 2]
In [194]: a+=a
In [195]: a
Out[195]: [1, 2, 1, 2]
In [196]: a
Out[196]: [1, 2, 1, 2]
In [197]: a
Out[197]: [1, 2, 1, 2]
In [198]: a.append(a)
In [200]: a
Out[200]: [1, 2, 1, 2, [...]]
In [201]: a.append(a)
In [202]: a
Out[202]: [1, 2, 1, 2, [...], [...]]
In [203]: a[4]
Out[203]: [1, 2, 1, 2, [...], [...]]
In [204]: a[5]
Out[204]: [1, 2, 1, 2, [...], [...]]
In [205]: id(a)
Out[205]: 64692680L
In [206]: id(a[5])
Out[206]: 64692680L
In [207]: id(a[4])
Out[207]: 64692680L
In [208]: id(a) == id(a[4]) and id(a[4]) == id(a[5])
Out[208]: True
首先请注意+= 不会创建省略号列表。
其次,可以看出省略号列表表示访问该插槽将返回完全相同的列表 - 省略号列表表示指向外部列表的指针(或者,几乎可以肯定一个外部列表,如果有不止一层嵌套)。