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

Pythonで辞書(Dictionary)を作成する方法をわかりやすく解説

Pythonの辞書(Dictionary)は、データ構造の一種で、「キー」と「値」をペアにした要素のコレクションです。辞書内の各キーは一意(ユニーク)である必要があり、それぞれのキーには対応する値が関連付けられています。つまり、辞書は「キー : 値」という形式のペアを保持するデータ構造だと言えます。

この記事では、Pythonで辞書を作成するさまざまな方法について詳しく解説します。

波括弧 {} を使った基本的な辞書の作成

Pythonで辞書を作成する最も一般的な方法は、波括弧 {} の中に「キー: 値」のペアを記述することです。各ペアはカンマ(,)で区切ります。

辞書の値には任意のデータ型を使用でき、同じ値を重複して持たせることも可能です。一方、キーは重複できず、かつイミュータブル(変更不可能)な型である必要があります。文字列や数値はキーとして使えますが、リストのような可変オブジェクトはキーにできません。

また、辞書のキーは大文字と小文字が区別される点にも注意しましょう。たとえば「Name」と「name」は、スペルが似ていても別々のキーとして扱われます。

サンプルコード

dict1 = {1: "Tutorials", 2: "Point", 3: 1116}
print("Dictionary 1", dict1)

dict2 = {1: "TutorialsPoint", "TP": "DictionaryTutorial"}
print("Dictionary 2", dict2)

実行結果

Dictionary 1 {1: 'Tutorials', 2: 'Point', 3: 1116}
Dictionary 2 {1: 'TutorialsPoint', 'TP': 'DictionaryTutorial'}

上記の例からわかるように、辞書ではキーと値にそれぞれ異なるデータ型を自由に使用できます。ただし、すべてのキーは一意でなければならないというルールは守る必要があります。

同じ名前のキーが複数あった場合はどうなる?

もし辞書の中に同じキーが複数存在したら、どのような動作になるのでしょうか。実際に例を見て確認してみましょう。

サンプルコード

dict1 = {1: "Tutorials", 1: "Point", 3: 1116}
print("Dictionary 1", dict1)

実行結果

Dictionary 1 {1: 'Point', 3: 1116}

この例では、キー「1」に対して「Tutorials」と「Point」という2つの値が指定されていますが、出力結果を見ると後から指定した「Point」だけが残っています。これは、同じキーが複数ある場合、先に定義された値が後から定義された値で上書きされるためです。

もし1つのキーに複数の値を持たせたい場合は、値としてリストを割り当てるとよいでしょう。例えば {1: ["Tutorials", "Point"]} のようにすれば、キー「1」に2つの値を関連付けることができます。

dict() メソッドを使った辞書の作成

Pythonでは、組み込み関数の dict() メソッドを使って辞書を作成することもできます。dict() の中に「キー: 値」のペアを定義します。

サンプルコード

dict1 = dict({1: "Tutorials", 1: "Point", 3: 1116})
print("Dictionary 1", dict1)

dict2 = dict([(1, "Tutorials"), (2, "Point")])
print("Dictionary 2", dict2)

上記の dict2 は、dict() メソッドにタプルのリストを渡すことで作成した辞書です。このように、キーと値のペアをタプル形式で渡すこともできます。

実行結果

Dictionary 1 {1: 'Point', 3: 1116}
Dictionary 2 {1: 'Tutorials', 2: 'Point'}

空の辞書を作成する方法

空の辞書を作成したい場合は、波括弧を2つ並べて {} と書くだけでOKです。

サンプルコード

dict1 = {}
print("Dictionary 1", dict1)

実行結果

Dictionary 1 {}

空の辞書は、後からデータを追加していく場合によく使われます。なお、空の辞書を作成するもう1つの方法として dict() を引数なしで呼び出すこともできます。

ネストした辞書(入れ子構造)の作成

ネストした辞書とは、その名の通り「辞書の中に辞書が入っている」構造のことです。ネストした辞書では、あるキーの値として別の辞書を持たせることができます。

サンプルコード

dict1 = {
    1: "Tutorials",
    2: "Point",
    3: {'A': "Welcome", 'B': "To", 'C': "TutorialsPoint"}
}
print(dict1)

実行結果

{1: 'Tutorials', 2: 'Point', 3: {'A': 'Welcome', 'B': 'To', 'C': 'TutorialsPoint'}}

この例では、キー「3」の値として別の辞書が格納されています。このように、dict1 はネストした辞書になっています。ネスト構造を使うと、JSONデータのように階層的な情報を表現できるのが大きなメリットです。

まとめ

Pythonで辞書を作成する主な方法は以下の通りです。

  • 波括弧 {} を使う方法:最もシンプルで一般的な方法
  • dict() メソッドを使う方法:キーワード引数やタプルのリストから作成できる
  • 空の辞書 {}:後から要素を追加する際に便利
  • ネストした辞書:階層的なデータ構造を表現できる

辞書はキーによる高速なデータアクセスが可能な強力なデータ構造です。キーの一意性やイミュータブルであるというルールを理解した上で、用途に応じて使い分けましょう。

  1. Pythonでネストされた辞書(入れ子のdict)を作成する方法

    Pythonの辞書(dict)オブジェクトはミュータブル(変更可能)です。この特性を利用すると、ある辞書の「値」として、別の辞書オブジェクトをそのまま格納することができます。このように、キーに対応する値としてさらに辞書が定義されている構造を、ネストされた辞書(入れ子構造の辞書)と呼びます。ネストされた辞書の基本構文ネストされた辞書は、外側のキーに対して、波括弧 {} で囲まれた新しい辞書を値として指定するだけで作成できます。>>> students={"student1":{"name":"Raaj", "

  2. Pythonの辞書からキーを削除する方法を解説!del文・pop()・popitem()の使い分け

    はじめに Pythonの辞書(dict)は、キーと値のペアでデータを管理できる非常に便利なデータ構造です。プログラムの実行中に不要になった要素を削除したい場面は多くありますが、Pythonにはいくつかの削除方法が用意されています。 この記事では、代表的な削除方法であるdel文とpop()メソッドを中心に、それぞれの特徴や使い分けのポイントを実行例とともにわかりやすく解説します。 del文でキーを削除する Pythonのdelキーワードは、ほぼすべてのオブジェクトに対して使用できます。辞書から特定の要素を削除する場合は、delステートメントにキーを指定します。 >>> D1