※この記事にはプロモーションが含まれています。

09. ディクショナリ(Dictionary)

Pythonの辞書(dict)の使い方を徹底解説!

プログラミングでは、データをうまく管理することがとても大切です。その中でも、Pythonの「辞書(dict)」はとても便利で強力な機能です。今回は、辞書の基本的な構造と使い方について、わかりやすく説明します。

辞書とは

辞書(dict)は、Pythonにおいてキーと値のペアを管理するためのデータ構造です。
基本的にはリストと同じような構造ですが、辞書はキーとその値をセットで1つの要素として持つことが特徴です。

辞書を用いることで、キーに紐付けて値を登録し、データを取り出しやすく格納することができます。

 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が発売中!
発売数10,000本突破記念で、1月24日まで期間限定で91%オフの大セール中!!!

辞書の作成

辞書には、主に2つの作成方法があります。

波括弧を用いた作成方法

dictionary = {キー1:値1, キー2:値2, キー3:値3, ……}

波括弧 {} の中にキーと値のペアを キー: 値 の形式で作成します。各ペアはカンマ , で区切ります。

注意ポイント

同じ辞書内では重複したキーを定義することはできません。

 

上記のコードでは、'Tanaka'さんがキーで 'Project Manager' が対応する値です。このように、キーと値のペアをカンマで区切って定義しています。

 

dict関数を用いた作成方法

dictionary = dict(キー1=値1, キー2=値2, キー3=値3, ……)

こちらは、dict 関数にキーと値をイコール = で繋げて渡す方法です。複数の要素をカンマ , で区切って記述します。

 

このコードでは、dict 関数を使用して同じ辞書を作成しています。Tanaka='Project Manager' などのペアをカンマで区切って定義しています。

どちらの方法でも、簡単に辞書を作成することができます。

 

辞書の値の取得

dictionary[キー]

定義した辞書から値を取り出すには、キーを指定します。

 

Developer

上記のコードでは、キー 'Suzuki'さんに対応する値 'Developer' を取得して表示しています。print を用いて取得した値を出力しています。

 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が発売中!
発売数10,000本突破記念で、1月24日まで期間限定で91%オフの大セール中!!!

辞書のデータの追加・変更・削除

Pythonの辞書(dictionary)は、キーと値のペアを格納するデータ構造で、データの追加、変更、削除が簡単に行えます。

辞書へのデータの追加

dictionary[新しいキー] = 代入値

辞書に新しい要素を追加するには、存在していないキーを指定して値を代入します。

 

例えば、以下のようにして新しい要素を追加できます。

このコードでは、employee_data辞書に新しいキー'Yamamoto'さんとその値'Network Engineer'を追加しています。employee_data辞書は、'Tanaka'さんと'Suzuki'さんのデータを既に含んでおり、'Yamamoto'さんのデータが新たに追加されます。

 

追加後の辞書の中身を確認すると、以下のようになります。

{'Tanaka': 'Manager', 'Suzuki': 'Developer', 'Yamamoto': 'Network Engineer'}

このように、printを使用して辞書の中身を表示すると、'Yamamoto'さんのデータが正しく追加されていることが確認できます。

 

辞書のデータの変更

dictionary[既存のキー] = 新しい値

既存のキーの値を変更するには、そのキーを指定して新しい値を代入します。
 

例えば、'Yamamoto'さんの役職を'Network Engineer'から'UI Designer'に変更するには、以下のようにします。

このコードでは、employee_data辞書のキー'Yamamoto'さんに対応する値を'UI Designer'に変更しています。

 

変更後の辞書の中身を確認すると、以下のようになります。

{'Tanaka': 'Manager', 'Suzuki': 'Developer', 'Yamamoto': 'UI Designer'}

このように、printを使用して辞書の中身を表示すると、'Yamamoto'さんの役職が'UI Designer'に変更されていることが確認できます。

 

辞書のデータの削除

del dictionary[既存のキー]

辞書から要素を削除するには、del文を使用します。削除したい要素のキーを指定して削除します。

 

例えば、'Yamamoto'さんのデータを削除するには、以下のようにします。

このコードでは、employee_data辞書からキー'Yamamoto'さんとその値を削除しています。

 

削除後の辞書の中身を確認すると、以下のようになります。

{'Tanaka': 'Manager', 'Suzuki': 'Developer'}

このように、printを使用して辞書の中身を表示すると、'Yamamoto'さんのデータが削除されていることが確認できます。

このようにして、Pythonの辞書に対してデータの追加、変更、削除を行うことができます。辞書は非常に柔軟で便利なデータ構造なので、ぜひ活用してみてください。

 

辞書にリストやタプル、辞書を格納する方法

Pythonの辞書は、キーと値のペアを格納するデータ構造で、値にはリストやタプル、さらには辞書も格納することができます。辞書の中に辞書を入れ子(ネスト)の構造で定義できます。

入れ子(ネスト)構造の辞書の定義

まず以下のようにして、入れ子(ネスト)の構造の辞書を定義します。

このコードは、辞書employee_dataをさらに詳細に定義したものです。この辞書の中には、キーとして従業員名(ここでは'Tanaka'さんなど)があり、値には波括弧でさらに辞書が定義されています。

 

'Tanaka'さんの内側の辞書では、キー'position'に対して値'Project Manager'、キー'salary'に対して値550、そしてキー'projects'に対して値は角括弧でリストが定義されています。リストには、'ProjectA''ProjectB'が格納されています。

 

入れ子(ネスト)構造の辞書の確認

辞書employee_dataを確認すると、以下のように表示されます。

{'Tanaka': {'position': 'Project Manager', 'salary': 550, 'projects': ['ProjectA', 'ProjectB']},
'Suzuki': {'position': 'Developer', 'salary': 450, 'projects': ['ProjectB', 'ProjectC']},
'Sato': {'position': 'Business Analyst', 'salary': 400, 'projects': ['ProjectA', 'ProjectC']}}

全体は波括弧で囲われて辞書になっており、その中にさらに波括弧があり、辞書の値として辞書があるのがわかります。また、値には角括弧でリストも含まれています。

 

入れ子(ネスト)構造の辞書からの値の取得

例えば、'Suzuki'さんの値を取り出したい場合は、以下のようにします。

{'position': 'Developer', 'salary': 450, 'projects': ['ProjectB', 'ProjectC']}

このように'Suzuki'さんの値が表示されました。これは波括弧が付いており、辞書になっています。

 

次に、'Suzuki'さんのpositionを確認する場合は、以下のようにします。

'Developer'

 

また、'Suzuki'さんの携わったprojectsを確認する場合は、以下のようにします。

['ProjectB', 'ProjectC']

これは角括弧が付いており、リストになっています。従って、最初の要素を取得するには、以下のようにします。

'ProjectB'

このように辞書の中には、リストやタプル、そして辞書も格納することができます。

 

辞書の便利なメソッド

Pythonの辞書(dictionary)は、キーと値のペアを格納するデータ構造で、さまざまな便利なメソッドを提供しています。

ここでは以下の辞書を例に、基本的なメソッドについて確認します。

 

keys()メソッド:辞書内の全てのキーの取得

keys()メソッドは、辞書内の全てのキーを取得します。以下の例では、employee_data辞書の全てのキーを取得しています。

dict_keys(['Tanaka', 'Suzuki', 'Yamamoto'])

 

values()メソッド:辞書内の全ての値の取得

values()メソッドは、辞書内の全ての値を取得します。以下の例では、employee_data辞書の全ての値を取得しています。

dict_values(['Manager', 'Developer', 'Network Engineer'])

 

items()メソッド:辞書内の全てのキーと値のペアの取得

items()メソッドは、辞書内の全てのキーと値のペアを取得します。以下の例では、employee_data辞書の全てのキーと値のペアを取得しています。

dict_items([('Tanaka', 'Manager'), ('Suzuki', 'Developer'), ('Yamamoto', 'Network Engineer')])

 

get()メソッド:指定したキーに対応する値の取得

get()メソッドは、指定したキーに対応する値を取得します。キーが存在しない場合は、デフォルト値を返します。以下の例では、employee_data辞書から'Tanaka'さんの値を取得しています。(キーが存在しない場合は、'Not Found'と表示されます。)

'Manager'

 

clear()メソッド:辞書の初期化

clear()メソッドは、辞書内の全ての要素を削除し、辞書を空にします。以下の例では、employee_data辞書を初期化しています。

{}

 

これらのメソッドを活用することで、Pythonの辞書をより効果的に操作することができます。ぜひ、さまざまな場面で活用してみてください。

 

辞書の結合

辞書を結合する方法はいくつかありますが、ここでは主な2つの方法を紹介します。次に示す2つの辞書を使って、具体的な結合方法を説明します。

 

update() メソッドを使う方法

update() メソッドを使って、employee_data1 に employee_data2 を結合します。

{'Tanaka': 'Project Manager', 'Suzuki': 'Developer', 'Sato': 'Business Analyst', 'Yamamoto': 'Developer'}

 

アンパック演算子 (**) を使う方法

アンパック演算子(**)を使って、employee_data1 と employee_data2 を結合します。この方法では、新しい辞書が作成されます。

{'Tanaka': 'Project Manager', 'Suzuki': 'Developer', 'Sato': 'Business Analyst', 'Yamamoto': 'Developer'}

 

これらの方法を使えば、Pythonで簡単に辞書を結合できます。ただし、今回の例では結合する2つの辞書内に同じキーが存在しませんでしたが、もし同じキーがある場合は注意が必要です。

注意ポイント

結合する辞書に同じキーが存在する場合、後から結合する辞書の値で上書きされます。

 
 

 
 
 
最後に...


Pythonの学習においては、実際に様々なプログラムを書いて試していくことが非常に重要です。Pythonについて、さらに詳しく学ばれたい方は、以下の私のUdemy講座をご検討いただければ幸いです。


Pythonを用いて世界中のWebサイトから自動的にデータ収集する方法を、基礎からていねいに学ぶことができます。Pythonを初めて学ばれた方も、最初に取り組みやすい内容になっています。


>> Pythonによるビジネスに役立つWebスクレイピング
発売数10,000本突破を記念して大セール中!期間限定になりますのでお早めに。
Pythonによるビジネスに役立つWebスクレイピング(BeautifulSoup、Selenium、Requests)講座の画面

既に10,000名以上の方に受講頂き、大変好評です。またコースに満足いただけない場合でも、30日返金保証があるので安心です。

期間限定の割引クーポンは、こちらから!
>> Pythonによるビジネスに役立つWebスクレイピング
   
   





-09. ディクショナリ(Dictionary)