Python列表如何工作?

时间:2013-06-26 12:52:02

标签: python list reference

我已经使用Python好几个月,但是当我读到列表问题时,我今天早上变得非常困惑。当你将一个列表附加到另一个列表或将列表分配给另一个列表时,答案是讨论“列表的引用”,这让我感到困惑(很多)。

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

2 个答案:

答案 0 :(得分:2)

你在说:

>>> a = b = []
>>> a.append(2)
>>> print a
[2]
>>> print b
[2]

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

要解决此问题,您可以制作a的副本,该副本不是a的完全相同的对象,但它具有相同的内容:

>>> a = []
>>> b = a[:]
>>> a.append(2)
>>> a
[2]
>>> b
[]

答案 1 :(得分:-1)

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

a = []
b = []
a.append(15)
print(a)
#[15]
b.append(16)
print(b)
#[16]
print(a+b)
#[15, 16]