Python 列表是如何工作的? [复制]

Posted

技术标签:

【中文标题】Python 列表是如何工作的? [复制]【英文标题】:How do Python lists work? [duplicate] 【发布时间】:2013-06-23 14:54:49 【问题描述】:

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

有人可以向我解释列表/列表引用的工作原理吗?

【问题讨论】:

这有帮助吗***.com/questions/9724802/… 如果您对基础知识感到困惑,the tutorials 很有用 【参考方案1】:

你在说什么:

>>> 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
[]

【讨论】:

@ThomasHobohm 不要忘记接受答案 :)【参考方案2】:

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

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

【讨论】:

以上是关于Python 列表是如何工作的? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 python 解释中查找列表中最常见的元素? [复制]

如何在 Python 中完全展平列表? [复制]

如何在 Python 中对元组列表列表进行平面映射? [复制]

如何使用列表推导来扩展 python 中的列表? [复制]

如何使用 Python 转换列表中的多个列表? [复制]

如何在 Python 中将两个列表组合成字典? [复制]