Python列表如何工作?

How do Python lists work?

本问题已经有最佳答案,请猛点这里访问。

几个月来我一直在使用python fine,但是今天早上当我读到一个列表问题时,我变得非常困惑。当你将一个列表附加到另一个列表或将一个列表分配给另一个列表时,答案是关于"列表的引用",这让我很困惑(很多)。

有人能给我解释一下列表/列表引用是如何工作的吗?


你在说:

1
2
3
4
5
6
>>> a = b = []
>>> a.append(2)
>>> print a
[2]
>>> print b
[2]

这是因为它们都引用同一个对象。id(a) == id(b)(或a is b),因此一个中添加的内容将添加到另一个中。

要解决此问题,您可以复制一个,它与a的对象不完全相同,但具有相同的内容:

1
2
3
4
5
6
7
>>> a = []
>>> b = a[:]
>>> a.append(2)
>>> a
[2]
>>> b
[]


您还可以打印一个组合列表:不确定这是否有帮助。我会查看python wiki,因为它们有更详细的列表和听写摘要。

1
2
3
4
5
6
7
8
9
10
a = []
b = []
a.append(15)
print(a)
#[15]
b.append(16)
print(b)
#[16]
print(a+b)
#[15, 16]