Python 辞書のキー
辞書内の値には制限がなく、標準オブジェクトからユーザーまでの任意の Python オブジェクトを使用できます-define 任意のオブジェクトを使用できますが、ディクショナリ内のキーはタイプ制限されています。
1 つのキーを複数の値に対応させることはできません
1 つの原則を明確にする必要があります。各キーは 1 つの項目にのみ対応できます。言い換えると、1 つのキーに対応する複数の値は許可されません (リスト、タプル、その他の辞書などのコンテナー オブジェクトは許可されます)。キーの競合がある場合 (つまり、辞書キーに繰り返し値が割り当てられている場合)、最後 (最新) の割り当てが採用されます。 Python では、ディクショナリ内のキーの競合によるエラーは生成されません。キーの競合が発生した場合、キーと値のペアが割り当てられるたびにチェックされることになり、一定の時間がかかるため、キーの競合はチェックされません。メモリの量。
>>> dict1 = {'foo':789, 'foo': 'xyz'} >>> dict1 {'foo': 'xyz'} >>> dict1['foo'] = 123 >>> dict1 {'foo': 123}
キーはハッシュ可能である必要があります
ほとんどの Python オブジェクトはキーとして機能しますが、ハッシュ可能なオブジェクトである必要があります。リストや辞書などの可変型はハッシュ可能ではないため、キーとして使用できません。すべての不変型はハッシュ可能であるため、辞書キーとして使用できます。等しい値を持つ数値は同じキーを表すことに注意してください。つまり、整数値 1 と浮動小数点数 1.0 のハッシュ値は同じであり、それらは同じキーです。
同時に、(まれに) ハッシュ可能で、辞書キーとして使用できる可変オブジェクトもいくつかありますが、それはまれです。たとえば、 __hash__() 特殊メソッドを実装するクラスを考えてみましょう。 __hash__() メソッドは整数を返すため、不変の値が引き続き (辞書キーとして) 使用されます。なぜ鍵はハッシュ可能でなければならないのでしょうか?インタプリタはハッシュ関数を呼び出し、ディクショナリ内のキーの値に基づいてデータの保存場所を計算します。キーが可変オブジェクトの場合、その値は変更される可能性があります。キーが変更されると、ハッシュ関数はデータを保存するために別のアドレスにマップされます。これが発生すると、ハッシュ関数は関連データを確実に保存または取得できなくなります。ハッシュ可能なキーを選択する理由は、その値を変更できないためです。
数字と文字列は辞書キーとして使用できます。タプルは不変ですが、不変ではない場合もあります。したがって、タプルに含まれるのが数字や文字列などの不変パラメータのみである場合は、有効なキーとしてのタプルの使用を制限する必要があります。辞書内の有効なキーとして使用されます。
以上がPython 辞書のキーをリストにすることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。