>>> c = [1, 2, 3]
>>> print(c, id(c))
[1, 2, 3] 43955984
>>> c += c
>>> print(c, id(c))
[1, 2, 3, 1, 2, 3] 43955984
>>> del c
>>> c = [1, 2, 3]
>>> print(c, id(c))
[1, 2, 3] 44023976
>>> c = c + c
>>> print(c, id(c))
[1, 2, 3, 1, 2, 3] 26564048
有什麼區別?是+ =和+不應該只是語法糖?+和+ =運算符是不同的?
你的例子清楚地表明它們不是。 + =明確地加入到這個對象中,並且x = a + b(即使a = b = x)顯然會創建一個新結果並將其分配給LHS。我認爲,檢查每個添加項是否是一個簡單的添加(如上所述)並將其優化爲+ =是反作用的。 – Lazarus 2010-01-08 11:46:45
爲什麼downvote?我承認標題可能會更好,但問題本身是非常有效的 – Kimvais 2010-01-08 11:55:09
這個問題有一些很好的列表連接操作的附加信息http://stackoverflow.com/questions/2022031/python-append-vs-operator-on-lists -why-do-these-give-different-results – Kimvais 2010-01-08 12:01:34