2016-11-18 37 views
0

我不明白,在Python以下Python代碼片段如何工作?

l = [] 
l += [1],[2] 
print l # this gives [[1],[2]] 

但是下面的代碼,

l = [] 
l = l + [1],[2] 
print l # this gives ([2], [3]) 

任何人都可以解釋上述行爲的原因是什麼?我使用Python 2.7

謝謝。

+0

當我嘗試它給出:'([1],[2])' – mitoRibo

回答

0

當編寫

l = l + [1],[2] 

然後

l+[1] 

首先計算在右手側,簡化了評價

l = [1],[2] 

這被解釋爲一個元組,和重新分配名稱「l」。在你的第一個表達式中,右側的列表元組被逐個追加,並且名稱「l」仍然是一個列表。