我偶尔会看到像这样的Python代码中使用的列表切片语法:
newList = oldList[:]
当然,这与以下内容相同:
newList = oldList
还是我错过了什么?
就像NXC所说的,Python变量名实际上指向一个对象,而不是内存中的特定位置。
newList = oldList会创建两个指向同一对象的不同变量,因此,更改oldList也会更改newList。
oldList
newList
但是,当您这样做时newList = oldList[:],它将“切片”列表,并创建一个新列表。的默认值为[:]0,并且位于列表的末尾,因此它将复制所有内容。因此,它使用第一个中包含的所有数据创建一个新列表,但是可以更改两个列表而无需更改另一个。
[:]