2013-06-26 42 views
-2

我几个月来一直在使用Python,但是当我阅读列表问题时,今天早上我变得非常困惑。当你向另一个列表添加一个列表或者给另一个列表分配一个列表时,答案是在讨论“列表引用”,这让我很困惑(很多)。Python列表如何工作?

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

+1

这是有帮助的http://stackoverflow.com/questions/9724802/how-does-python-referencing-work –

+0

如果由基本迷惑[教程](HTTP://docs.python .org/2/tutorial /)很有用 –

回答

2

你说的是:

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

之所以会这样是因为它们都引用同一个对象。 id(a) == id(b)(或a is b),所以无论添加在另一个中。

为了解决这个问题,你可以使一个副本,这是不是a完全相同的对象,但它具有相同的内容:

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

谢谢:)!这有助于。 –

+0

@ThomasHobohm不要忘记接受答案:) – TerryA

-1

还可以打印组合列表:如果没有把握这有助于。我会检查出python wiki,因为他们有更详细的列表和字典摘要。

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