我知道我们在Python中传递参数时传递一个对象的引用。
所以,
def changer(b):
b[0] = "spam"
l = [1,2]
changer(l) # l is now ["spam",2]
但是,如果我这样做,
changer(l[:]) # l remains [1,2]
当我传递列表切片时,第二种情况下传递给函数的是什么?
答案 0 :(得分:1)
l[:]
创建副本。看切片。副本传递给函数,函数修改l的副本。因此,l将保持不变。
所有切片操作都返回包含所请求的新列表 元素。这意味着以下切片返回一个新的(浅) 列表副本。