dict
格納のデータをハッシュテーブルのデータ構造に。ハッシュテーブルはどのように機能しますか?
一言で言えば、dictは8スロットの配列のようなオブジェクトに初期化されているとしましょう。 dictに新しいキーと値のペアを追加すると、キーが存在するスロットを返す関数を使用してキーがhashes
になります。これは、スロットがすでに使用されている可能性があるため、確定的ではありません。再評価し、別のスロットを探す必要があります。
そのため、dict.values()
から値を取得する順序は、そのデータによって異なります。だからこそ、それは順序付けられていないと呼ばれています。私はキーの順序を変更した場合、私は辞書のキーと値のペアを印刷するとき、それはまた別の表示され、
>>> d = {'a': 1, 'aa': 2}
>>> d
{'a': 1, 'aa': 2}
>>> d = {'aa': 1, 'a': 2}
>>> d
{'aa': 1, 'a': 2}
:
は例えば、この単純な辞書を考えます。しかし、私は別のキー
>>> d = {'b': 1, 'a': 2}
>>> d
{'a': 2, 'b': 1}
Althoughtを使用した場合に何が起こるか見て、私は最初、それは'a'
後に割り当てられた'b'
キーを述べました。
ただし、dictが設定されると、dict.items()
と呼ばれると常に同じ順序が返されます。
「Dict」は値をハッシュテーブルに格納します。ハッシュテーブルの仕組みを読んでください。基本的には、項目の順序を保証することができないため、データは順序付けされていません。それはハッシュテーブルの動作の仕方だからです。 – Vinny
これはPythonの実装とバージョン間での動作が異なることも知っておいてください。 –