我發現了一些問題詢問TypeError: 'tuple' object does not support item assignment
對SO,但儘管如此,我很困惑這個問題:python元組,有人可以解釋這種行爲嗎?
考慮代碼片段:
>>> a = ([],[])
>>> a[0].append(1) # 1
>>> a
([1], [])
>>> a[0] += [2]
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
a[0] += [2]
TypeError: 'tuple' object does not support item assignment # 2
>>> a
([1, 2], []) # 3
>>>
我的問題是:
- 元組是爲什麼?(我知道我真的不明白python的不變性..)
- 如果
1
是可以接受的d,2
提高TypeError
的原因是什麼? - 在
3
,a
被修改,那麼提高TypeError
有什麼意義?
謝謝
對於第一個,請參閱http://docs.python.org/3/reference/datamodel.html#objects-values-and-types-基本上,「元組是不可變的」只意味着「你不能添加,刪除或者替換元組中的對象「,而不是」包含在元組中的對象也是不可變的「。 – delnan