2015-06-14 72 views
2

我看到有人在線寫了一個有趣的python行,但無法理解它爲什麼起作用。因此,我們可以嘗試在Python解釋器下面幾行:Python + =帶有列表和元組

s=[1] 
s=s+(1,-1) 

這將導致一個錯誤「類型錯誤:只能串聯列表(不是‘元組’),列出」。但是,如果以另一種方式進行:

s=[1] 
s+=(1,-1) 

將導致S = [1,1,-1]

所以我用思想X = X + Y等於X + = Y,有人可以告訴我他們是如何不同以及爲什麼第二種方式有效?提前致謝。

+0

第一個重複的不回答這個問題 - 它問爲什麼'+ ='改變列表。第二種更適用,儘管解釋「爲什麼」的唯一真正嘗試是與對稱性有關。 – hpaulj

回答

1

代替+=使用list.extend

s = [1] 
s.extend((1,-1)) 
+0

你的答案並不遙遠。它看起來像's + = ...'實現爲's.extend(tuple(...))'(或v.v)。 's + = 1,-1'起作用。 – hpaulj