3
有這樣的代碼:切片分配modifes原始列表
a = [1, 2, 3, 4, 5]
a[:] = [] # and now a is also empty
聲明a[:]
創建列表a
,因爲我讀的副本,因此,如果空單[]
被分配到副本,那麼爲什麼原來的對象也被修改?
有這樣的代碼:切片分配modifes原始列表
a = [1, 2, 3, 4, 5]
a[:] = [] # and now a is also empty
聲明a[:]
創建列表a
,因爲我讀的副本,因此,如果空單[]
被分配到副本,那麼爲什麼原來的對象也被修改?
x = a[:]
使得x
包含相同值的新列表作爲a
a[:] = x
使得現有列表a
包含相同的值作爲x
當其切換的equals側表達式的行爲變化。
聲明
a[:]
因爲我讀
除非你不讀書,你寫的創建列表a
的副本。切片分配的工作方式不同,即用切片替換切片。
切片分配!=切片。這是一個功能,而不是一個錯誤。 :-) –