前回の記事では、Pythonの辞書型の解説をしました。
この記事では、Pythonの辞書型で便利な使い方について紹介します。
要素の情報を取得
辞書型のメソッドには、keys()、values()、items()などがあります。
それぞれ、辞書型のキー、値、キーと値のペアを取得することができます。
keys()メソッド
keys()メソッドは、辞書型のキーをリストとして返します。
以下は、辞書型のキーを取得する例です。
person = {'name': 'John', 'age': 30, 'city': 'Tokyo'}
# キーのリストを取得
keys = person.keys()
print(keys) # dict_keys(['name', 'age', 'city'])values()メソッド
values()メソッドは、辞書型の値をリストとして返します。
以下は、辞書型の値を取得する例です。
person = {'name': 'John', 'age': 30, 'city': 'Tokyo'}
# 値のリストを取得
values = person.values()
print(values) # dict_values(['John', 30, 'Tokyo'])items()メソッド
items()メソッドは、辞書型のキーと値をタプルとして返します。
以下は、辞書型のキーと値を取得する例です。
person = {'name': 'John', 'age': 30, 'city': 'Tokyo'}
# キーと値のペアのリストを取得
items = person.items()
print(items) # dict_items([('name', 'John'), ('age', 30), ('city', 'Tokyo')])これらのメソッドを使用することで、辞書型の中身を取り出し、リストやタプルとして扱うことができます。
また、for文などを使用して辞書型の中身を処理する際にも、これらのメソッドは非常に便利です。
要素の検索
辞書型の要素の検索は、「in演算子」と「get()メソッド」の2つの方法があります。
in演算子
辞書型の中に、指定したキーが存在するかどうかを調べるには、in演算子を使います。
person = {'name': 'John', 'age': 30, 'city': 'Tokyo'}
# キーが存在する場合はTrue、存在しない場合はFalseが返ります
print('name' in person) # True
print('brith' in person) # Falseget()メソッド
辞書型のget()メソッドは、辞書型の中に指定したキーが存在するかどうかを調べるためのメソッドです。
get()メソッドでは、辞書型に指定したキーが存在しない場合、デフォルト値を設定することができます。
辞書型のget()メソッドは、以下のように使用します。
person = {'name': 'John', 'age': 30, 'city': 'Tokyo'}
# キーが存在する場合はその値が、存在しない場合はNoneが返ります
print(person.get('name')) # 100
print(person.get('brith')) # None
# 第2引数でデフォルト値を指定できます
print(person.get('brith', 20000101)) # 20000101辞書型をコピーする
Pythonで辞書型をコピーする方法には、以下の3つの方法があります。
copy()メソッドを使用する方法
person = {'name': 'John', 'age': 30, 'city': 'Tokyo'}
# copy()メソッドを使用して辞書型をコピー
new_person = person.copy()
print(person) # {'name': 'John', 'age': 30, 'city': 'Tokyo'}
print(new_person) # {'name': 'John', 'age': 30, 'city': 'Tokyo'}dict()コンストラクタを使用する方法
person = {'name': 'John', 'age': 30, 'city': 'Tokyo'}
# dict()コンストラクタを使用して辞書型をコピー
new_person = dict(person)
print(person) # {'name': 'John', 'age': 30, 'city': 'Tokyo'}
print(new_person) # {'name': 'John', 'age': 30, 'city': 'Tokyo'}辞書型式のコピーを使用する方法
person = {'name': 'John', 'age': 30, 'city': 'Tokyo'}
# 辞書型式のコピーを使用して辞書型をコピー
new_person = {key: value for key, value in person.items()}
print(person) # {'name': 'John', 'age': 30, 'city': 'Tokyo'}
print(new_person) # {'name': 'John', 'age': 30, 'city': 'Tokyo'}いずれの方法も、辞書型をコピーすることができます。
copy()メソッドとdict()コンストラクタは、どちらも比較的シンプルな方法で辞書型をコピーすることができます。
一方、辞書型式のコピーは、複雑な辞書型をコピーする場合に便利な方法です。
どの方法を使っても、コピー元の辞書型とコピー先の辞書型は別々のオブジェクトとして扱われます。
リスト型から辞書型を作成する
リスト型(list)「adr_no」「address」を「zip」で統合し、「dict」で辞書型の「adr_dict」を作成しました。作成された「adr_dict」を確認すると、「adr_no」がキー、「address」が値となっています。
これでリストから辞書を作成することができました。
# リスト型(list)
adr_no = ['150-0013','150-0021','150-0022']
address = ['東京都渋谷区恵比寿','東京都渋谷区恵比寿西','東京都渋谷区恵比寿南']
# リストを辞書へ統合
adr_dict = dict(zip(adr_no,address))
print(adr_dict)
#[結果] {'150-0013': '東京都渋谷区恵比寿', '150-0021': '東京都渋谷区恵比寿西',
#[結果] '150-0022': '東京都渋谷区恵比寿南'}
for ad_key,ad_val in adr_dict.items():
print(ad_key,ad_val)
#[結果] 150-0013 東京都渋谷区恵比寿
#[結果] 150-0021 東京都渋谷区恵比寿西
#[結果] 150-0022 東京都渋谷区恵比寿南以上、Pythonでzipを使ってリスト型 listから辞書型 dictionaryを作る方法でした。
まとめ
Pythonの辞書型について、応用的な使い方について解説をしてきました。
辞書型は、データをキーと値のペアで管理するため、様々なデータ構造の実装に利用されます。
この記事を参考に、Pythonでの辞書型の活用方法を身につけ、効率的なプログラミングに役立ててください。
Python 掲載一覧
漢文家族には、下記のPythonの記事があります。
気になるところからチェックしてみてください。
【Pythonの基本】
第1回 Pythonとは?
第2回 基本文法
第3回 変数とデータ型
【文字列】
第4回 文字列
【文字列関数とメソッド】
第7回 文字列の長さを調べる:len関数
【辞書型】
第9回 辞書型
第10回 辞書型(要素の情報の取得・要素の検索・辞書型のコピー・リスト型から辞書型を作成) 今ここ
【制御構文】
第12回 if文
第13回 match文
第14回 for文
【日付と時刻】
第15回 日付と時刻
第16回 文字の日付を日付型に変換する
第17回 日付型の日付を文字型の日付に変換する
【その他】
第18回 バージョンの確認方法
プログラム学習に限界を感じていませんか?


