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)