小编典典

没有明显原因使用的Python列表切片语法

python

我偶尔会看到像这样的Python代码中使用的列表切片语法:

newList = oldList[:]

当然,这与以下内容相同:

newList = oldList

还是我错过了什么?


阅读 176

收藏
2020-12-20

共1个答案

小编典典

就像NXC所说的,Python变量名实际上指向一个对象,而不是内存中的特定位置。

newList = oldList会创建两个指向同一对象的不同变量,因此,更改oldList也会更改newList

但是,当您这样做时newList = oldList[:],它将“切片”列表,并创建一个新列表。的默认值为[:]0,并且位于列表的末尾,因此它将复制所有内容。因此,它使用第一个中包含的所有数据创建一个新列表,但是可以更改两个列表而无需更改另一个。

2020-12-20