Tuple型はDictionary型のKeyとしてつかうことができます。
……え、用途?
何らかの制約や高速化の際、クラスなしで関係する変数一個を紐付けできる……とかですかね??(小声
実際のところ
画面A、Bがあって、これの稼動状態をBoolenでもつようなDictionaly型があるとします。
displayA = (480,320) displayB = (240,240) status = {displayA: True, displayB: False}
取扱はそのまんまなので、参照更新自在
status[displayA] #>>True status[displayB] #>> False status[displayB] = True status[displayB] #>> True
冒頭のように、これはリスト型だとできない挙動です。
displayC = [100,100] status = {displayA: True, displayB: False, displayC: True} """ Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list' """
公式の説明
この部分についてはPython公式がちゃんと記事にしてくれています。
雑にまとめると……
PythonのDictionary型は高速化のため捜査にHashをつかっている。
そのため、hashの使えないList型は除外される、と。
DictionaryKeys - Python Wiki