我正在使用Python2.7。*,並且當列表是元組的元素時嘗試列表操作的測試。
但我發現的東西,我不能讓自己明白:Python:當列表是元組中元素時的列表操作
>>> a = ([],)
>>> a[0] = a[0] + [1,2,3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> a
([],)
>>> b = ([],)
>>> b[0] += [1,2,3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> b
([1, 2, 3],)
>>> c = ([],)
>>> c[0].extend([1,2,3])
>>>
>>> c
([1, 2, 3],)
我知道,元組是不可變的和列表是可變的,我知道list +=
相當於list.extend()
從List += Tuple vs List = List + Tuple。
但是現在我在海上該如何解釋上面的代碼。
+1好答案,我不知道我怎麼沒想到這件事。 – Christian
非常感謝,這是一個很好的答案。 「元組不變,因爲元組內的對象的id不會改變」這句話使得所有的都清楚了! – nevesly