【Python】辞書型(要素の情報の取得・要素の検索・辞書型のコピー・リスト型から辞書型を作成)

アイキャッチ画像

前回の記事では、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) # False

get()メソッド

辞書型の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の記事があります。

気になるところからチェックしてみてください。

プログラム学習に限界を感じていませんか?

よかったらシェアしてね!
  • URLをコピーしました!
目次