2012-11-11 108 views
20

比方說,我有這方面的任務:列表+ =元組VS列表=列表+元組

points = [] 
point = (1, 2) 

爲什麼當我這樣做:

points += point 

它的工作原理完全罰款,並給了我點= [1,2]。 但是,如果我這樣做:

points = points + point 

它給了我一個類型錯誤:只能串聯列表(不是「元組」)上市。 雖然這些陳述不是同一回事嗎?

回答

20

所不同的是,list +=相當於list.extend(),它採取任何可迭代和擴展列表,它作爲一個元組是一個可迭代的。 (並在原地擴展列表)。

另一方面,第二個分配一個新列表到points,並嘗試連接一個列表到一個元組,因爲它不清楚預期結果是什麼(列表或元組?),所以沒有完成。