2012-01-28 117 views

回答

7

他們是不等價。這兩個例子應該讓你瞭解其中的差異。

實施例1:

>>> b = [1,2,3] 
>>> a = b 
>>> a[:] = [] 
>>> print b 
[] 

實施例2:

>>> b = [1,2,3] 
>>> a = b 
>>> a = [] 
>>> print b 
[1,2,3] 
1

即解釋,正如你所期望的,正確的有他們使用它:

這意味着下面的切片返回列表中的淺表副本

1

第二行不修改的列表中,它簡單地安排a指向一個新的,空,列表。第一行修改a指向的列表。考慮這個樣品SEESION在Python解釋器:

>>> b=[1,2,3] 
>>> a=b 
>>> a[:]=[] 
>>> a 
[] 
>>> b 
[] 

兩個ab指向同一個列表,因此我們可以看到,a[:]=[]清空列表現在無論ab指向同一個空列表。

相關問題