Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの辞書キーに関する2つの重要なルールとは?

Pythonの辞書(dict)において、値(value)には一切の制限がありません。標準オブジェクトでもユーザー定義オブジェクトでも、任意のPythonオブジェクトを格納できます。

しかし、キー(key)については話が別です。辞書のキーには、以下の2つの重要なルールがあります。

ルール1:同じキーを複数持つことはできない

辞書では、1つのキーに対して複数のエントリを持つことができません。つまり、重複したキーは許可されていません

もし代入時に重複したキーが現れた場合、最後に代入された値が優先されます

コード例

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print("dict['Name']:", dict['Name'])

実行結果

dict['Name']: Manni

この例では、キー 'Name' が2回登場しています。そのため、最初に代入された 'Zara' ではなく、後から代入された 'Manni' が出力されます。

ルール2:キーはイミュータブル(変更不可能)である必要がある

辞書のキーはイミュータブル(不変)でなければなりません。具体的には、以下のような型をキーとして使用できます。

  • 文字列(str)
  • 数値(int、floatなど)
  • タプル(tuple)

一方、リストのようなミュータブル(変更可能)なオブジェクトは、キーとして使用できません。

コード例

#!/usr/bin/python

dict = {['Name']: 'Zara', 'Age': 7}
print("dict['Name']:", dict['Name'])

実行結果

Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Zara', 'Age': 7};
TypeError: unhashable type: 'list'

このように、リストをキーとして使おうとすると TypeError: unhashable type: 'list' というエラーが発生します。これは、リストがハッシュ化できない(unhashable)型であるためです。

まとめ

  • 辞書の値には制限がないが、キーには制約がある
  • 重複したキーは許されず、最後に代入された値が有効になる
  • キーには文字列・数値・タプルなどのイミュータブルな型を使う
  • リストなどのミュータブルな型はキーにできない

  1. Pythonの辞書(dict)に新しいキーと値を追加する方法

    Pythonの辞書に新しいキーを追加する基本 Pythonの辞書(dict)は、キーと値のペアを格納するコレクションです。リストのような位置インデックスではなく、各要素はキーによって識別されます。また、同じキーを重複して持つことはできません。 そのため、新しいキー・値のペアを追加するのは非常に簡単です。存在しない新しいキーを指定し、そこに値を代入するだけで、自動的に新しいペアが辞書に追加されます。 コード例 >>> D1 = {1: a, 2: b, 3: c, x: 1, y: 2, z: 3} >>> D1[10] = z >>> D1

  2. Pythonで辞書をキー順に並べ替える方法【OrderedDictとsorted()の使い方】

    Pythonで辞書(dict)の要素をキーの順序に従って並べ替えたい場面はよくあります。この記事では、標準ライブラリのcollectionsモジュールに含まれるOrderedDictと、組み込み関数sorted()を組み合わせて、辞書をキー順にソートする方法を解説します。 OrderedDictとは Pythonの標準ディストリビューションには、高性能なコンテナデータ型を定義したcollectionsモジュールが含まれています。その中のOrderedDictは、辞書のサブクラスであり、要素が追加された順序を記憶する特徴を持っています。OrderedDictをイテレートすると、キーが最初に追加さ