Pythonのdict
PythonのdictはPerlやRubyでいうハッシュタイプです。その主な使い方についてのメモ書きです
初期化
初期化は様々な方法がありますが、{key: value, ...}
の形が最も使用頻度が高いでしょうか。下記の例にあるようにkey
に異なる複数の型を使用することができます。またこの際d[2]
とd[2.0]
のように数字として==
が成立するものは同一keyとして扱われます。 (ただし環境によって浮動小数点等号比較は結果が異なることがあるため、あまりあてにしない方がいいでしょう)
d = {'ichi': 1, 2:'ni', 'san':3}
print(d)
print(f'd["ichi"] = {d["ichi"]}')
print(f'd[2] = {d[2] }')
print(f'd[2.0] = {d[2.0] }')
# 実行結果
{'ichi': 1, 2: 'ni', 'san': 3}
d["ichi"] = 1
d[2] = ni
d[2.0] = ni
要素の追加
存在しないkey
に値を代入すると要素が追加されます。ただしd[key1][key2] =
とした場合に、key1
が存在しない場合はKeyError
例外が投げられます
d = {}
d['ichi'] = 1 # OK 'ichi'要素を追加
d['ni']['san'] = 1 # d['ni']が存在しないのでNG
削除
del d[key]
で削除します。また、d.clear()
で全要素を削除します
del d['ichi'] # d['ichi']を削除
d.clear() # 全要素削除
要素のテスト
要素のテストはkey in d
または key not in d
で
if key in d:
... # keyが存在するときの処理
if key not in d:
... # keyが存在しないときの処理
ループ処理
d.keys()
で全key
の要素を、d.values()
で全値を、d.items()
でkey
とvalue
のペアを処理できます
for key in d.keys():
...
for value in d.values():
...
for key, value in d.items():
...
要素の一括更新
d.update()
で複数要素の追加・更新ができます。update()
には他のdict型の変数、[(key, value), ...]
のtupleのリストの他キーワード引数を指定すると、キーワードを文字列キーとして扱ってくれます
d = {'ichi': 1}
d2 = {'ni': 2, 'san':3}
d.update(d2) # 他のdict型
d.update([('yon', 4), ('go', 5)]) # tupleのリスト
d.update(roku=6, nana=7) # キーワード引数
print(d)
# 実行結果
{'ichi': 1, 'ni': 2, 'san': 3, 'yon': 4, 'go': 5, 'roku': 6, 'nana': 7}
キーと要素の交換
リスト内包表記を使うとキーと要素を交換したdict型が作成できます
d = {'ichi': 1, 'ni':2, 'san':3}
d_swap = {val:key for key, val in d.items()} # keyとvalueをスワップ
最近のコメント