私はいくつかの質問を約TypeError: 'tuple' object does not support item assignment
SO上を尋ねたが、それでも、私はこのことについて困惑している:python tuple、誰かがこの動作を説明できますか?
は、コードスニペットを考えてみましょう:
>>> 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
が受け入れられている場合は、1
はその値を正常に変更しました。 d、理由は何ですか2
はTypeError
を上げますか?3
ではa
が変更されていますが、TypeError
が発生するのは何ですか?
タプルは不変ですが、それは要素として、可変データ型(ウル場合リスト)を含めることができるためですあなた
最初はhttp://docs.python.org/3/reference/datamodel.html#objects-values-and-typesを参照してください。基本的に「タプルは不変です」とは、「追加することはできません。またはタプル内のオブジェクトを置き換える "、"タプルに含まれるオブジェクトは不変ではありません "。 – delnan