Python

Python - 辞書(dict型)の使い方まとめ

Pythonで辞書型を使う際のメモです。順次更新します。

辞書オブジェクトに要素を追加

辞書オブジェクトに要素を追加するには、現在使用していないキーを指定して値を代入する。

"""
辞書オブジェクト[キー] = オブジェクト
"""
dic = {"ruffy": 17, "zoro": 33}
dic["sanji"] = 24

辞書オブジェクトの連結

updateメソッドを使用する。
同じキーを持つ要素があった場合、追加ではなく上書きになる点に注意が必要。

"""
辞書オブジェクト.update(連結する辞書オブジェクト)
"""
dic = {"ruffy": 17, "zoro": 33}
dic.update({"sanji": 24, "nami": 22})
print(dic)

get()関数を使用した値の取得

キーが登録されている場合、中身を返す
登録されていない場合、指定した「値」を返す

辞書オブジェクト.get(キー, 値)

キーと値の一覧を取得

辞書オブジェクト.items()

defaultdictで辞書のキーの有無を気にせずに処理する

Pythonで辞書をforで作成するときにキーの存在有無を毎回チェックするのはめんどう。
標準ライブラリのdefaultdictを使うと、キーが存在する場合はバリューを更新し、存在しない場合はキーとバリューを追加できる。
余計なif文がいらなくなるからすっきり。

# -*- coding: utf-8 -*-
from collections import defaultdict

words = ["apple", "apple", "banana", "orange", "banana", "apple"]
counts = {}
print(words)
print(counts)
for w in words:
    if w in counts:
        counts[w] += 1
    else:
        counts[w] = 1
print(counts)

# defaultdictを使ったver
counts = defaultdict(int)
print(counts)
for w in words:
    counts[w] += 1
print(counts)

辞書型のリストから検索する

print("辞書型のリストから検索する")
dic_list = [
     {"name": "Luffy", "age": 18},
     {"name": "Zoro", "age": 24},
     {"name": "Sanji", "age": 22},
]
print((dic for dic in dic_list if dic["name"] == "Zoro").next())

keyリストとvalueリストから辞書を作成する

print("keyリストとvalueリストから辞書を作成する")
key_list = ["a", "b", "c"]
value_list = [1, 2, 3]
key_value_dic = dict(zip(key_list, value_list))
print(key_value_dic)

-Python