だから私は経験のカップルを作る:なぜPythonで違いを設定できないのですか?
>>>{2,3} - {2}
{3}
この1つは完璧に動作します。
しかし、これは動作しないようです。私はそれが動作する必要があることを考える
>>> {{2,3},{4,3}} - {{4,3}}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'set'
、
を私は1つのセットを使用するため、2つの要素を含む、{2,3}および{4,3}マイナス1要素{4,3}になります。
それでも、うまく動作しません。どうして?
正解です。セットや辞書の仕組みについて考えてみましょう。キーをハッシュし、そのハッシュされたキーがセットに含まれているかどうかを調べる必要があります。キーが変更可能な場合、キーのハッシュはセットに追加された後に変更される可能性があります。したがって、文字通りセットをフリーズするだけでセットが不変になり、追加されたキーが変更されても心配する必要はありません。 – gnicholas
アンダートラッピングが正しいことを確認したい。したがって、setはハッシュ可能ではないため、setの要素の1つにすることはできません。 –
@マーズリー、そうです。 – falsetru