我几个月来一直在使用Python,但是当我阅读列表问题时,今天早上我变得非常困惑。当你向另一个列表添加一个列表或者给另一个列表分配一个列表时,答案是在讨论“列表引用”,这让我很困惑(很多)。Python列表如何工作?
有人可以向我解释列表/列表引用是如何工作的吗?
我几个月来一直在使用Python,但是当我阅读列表问题时,今天早上我变得非常困惑。当你向另一个列表添加一个列表或者给另一个列表分配一个列表时,答案是在讨论“列表引用”,这让我很困惑(很多)。Python列表如何工作?
有人可以向我解释列表/列表引用是如何工作的吗?
你说的是:
>>> 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
[]
谢谢:)!这有助于。 –
@ThomasHobohm不要忘记接受答案:) – TerryA
还可以打印组合列表:如果没有把握这有助于。我会检查出python wiki,因为他们有更详细的列表和字典摘要。
a = []
b = []
a.append(15)
print(a)
#[15]
b.append(16)
print(b)
#[16]
print(a+b)
#[15, 16]
这是有帮助的http://stackoverflow.com/questions/9724802/how-does-python-referencing-work –
如果由基本迷惑[教程](HTTP://docs.python .org/2/tutorial /)很有用 –