讀取的Python 3.2教程here,朝向端部的一個例子是是什麼A`和`之間`的差[:]`
a[:] = []
這是相當於
a = []
?如果是這樣,他們爲什麼寫a[:]
而不是a
?如果不是,有什麼區別?
讀取的Python 3.2教程here,朝向端部的一個例子是是什麼A`和`之間`的差[:]`
a[:] = []
這是相當於
a = []
?如果是這樣,他們爲什麼寫a[:]
而不是a
?如果不是,有什麼區別?
他們是不等價。這兩個例子應該讓你瞭解其中的差異。
實施例1:
>>> b = [1,2,3]
>>> a = b
>>> a[:] = []
>>> print b
[]
實施例2:
>>> b = [1,2,3]
>>> a = b
>>> a = []
>>> print b
[1,2,3]
即解釋,正如你所期望的,正確的有他們使用它:
這意味着下面的切片返回列表中的淺表副本
第二行不修改的列表中,它簡單地安排a
指向一個新的,空,列表。第一行修改a指向的列表。考慮這個樣品SEESION在Python解釋器:
>>> b=[1,2,3]
>>> a=b
>>> a[:]=[]
>>> a
[]
>>> b
[]
兩個a
和b
指向同一個列表,因此我們可以看到,a[:]=[]
清空列表現在無論a
和b
指向同一個空列表。