Pythonのdictionaryにデータを追加する
- 作成日: 2022-04-04
- 更新日: 2023-12-25
- カテゴリ: Python
Pythonのdictionaryにデータを追加する
Pythonでは辞書(dictionary)というデータ構造を使うことができます。
これを使うと特定の文字列のキーと特定のオブジェクトを紐づけることができます。
今回はこのdictionaryにデータを追加する方法について解説します。
関連記事
頭が悪い人のPythonのevalの使い方
頭がいい人のPythonのexitの使い方
状態遷移による文字列パースのテクニック【Python】
形態素解析で代名詞+助詞+名詞を文章から抜き出す【Python, 自然言語処理, Janome】
在宅・未経験、Pythonで稼ぐ方法は?【取引・宣伝・広告】
dictionaryの作成
辞書を作成するには↓のように変数を波カッコで初期化します。
d = {}
print(type(d)) # <class 'dict'>
あるいはdict()
を呼び出しても辞書を作成できます。
d = dict()
print(type(d)) # <class 'dict'>
↑の場合、d
という変数がdictionaryです。
辞書にデータを追加する
辞書にデータを追加するには↓のような記述をします。
d[キー] = 値
辞書であるd
に角カッコを付けて、文字列のキーを指定します。
そしてそれに値を代入します。
つまり↓のようにです。
d = {}
d['cat'] = 'nyan'
d['dog'] = 'wan'
↑の場合、辞書d
にはデータとしてキーcat
と値nyan
のペア、それからキーdog
と値wan
のペアが保存されます。
辞書のキーと値は一意で保存されます。
一意とはつまり1つのキーに対しては1つの値しか保存できないということです。
たとえば↓のようなコードを書いた場合、
d = {}
d['cat'] = 'nyan'
d['cat'] = 'nyan nyan'
最初に保存したキーcat
の値nyan
というデータは、その後に書かれた値nyan nyan
で上書きされます。
辞書に追加したデータを目視で確認する
辞書にデータを追加できても、それを確認できないと腑に落ちないと思います。
辞書のデータを確認するには、print()
を使うのが手っ取り早いです。
d = { 'cat': 'nyan', 'dog': 'wan' }
print(d)
# {'cat': 'nyan', 'dog': 'wan'}
あるいはitems()
で辞書のキーと値を見る方法もあります。
d = { 'cat': 'nyan', 'dog': 'wan' }
print(d.items())
# dict_items([('cat', 'nyan'), ('dog', 'wan')])
items()
は辞書のデータをキーと値のタプルのリストで返します。
あるいはもっと凝った表示を行いたい場合は、
d = { 'cat': 'nyan', 'dog': 'wan' }
for k, v in k.items():
print(k, '->', v)
というコードにしてもいけます。
これは↓のような出力になります。
cat -> nyan
dog -> wan
あるいはもっとオシャレに視覚的にわかりやすくしたい場合はjson
モジュールを使う手もあります。
import json
d = { 'cat': 'nyan', 'dog': ['wan', 'bah'] }
print(json.dumps(d, indent=2))
{
"cat": "nyan",
"dog": [
"wan",
"bah"
]
}
辞書をupdateで更新する
辞書にデータを追加する方法では、辞書を更新するアプローチもあります。
update()
メソッドを使えば辞書の更新が可能です。
d = { 'cat': 'nyan', 'dog': 'wan' }
d.update(bird='piyo')
print(d)
# {'cat': 'nyan', 'dog': 'wan', 'bird': 'piyo'}
update()
メソッドには辞書を渡すことも出来ます。
d = { 'cat': 'nyan', 'dog': 'wan' }
d2 = { 'bird': 'piyo' }
d.update(d2)
print(d)
# {'cat': 'nyan', 'dog': 'wan', 'bird': 'piyo'}
|演算子と|=演算子
Python3.9から|
演算子で辞書同士を結合できます。
この場合、右側の辞書の値が優先されます。
d1 = { 'cat': 'nyan', 'dog': 'wan' }
d2 = { 'cat': 'nyan nyan' }
d = d1 | d2
print(d)
# {'cat': 'nyan nyan', 'dog': 'wan'}
これは省略した|=
演算子に置き換えることも出来ます。
d1 = { 'cat': 'nyan', 'dog': 'wan' }
d2 = { 'cat': 'nyan nyan' }
d1 |= d2
print(d1)
# {'cat': 'nyan nyan', 'dog': 'wan'}
|=
演算子は右側にタプルのリストも指定できます。
d = { 'cat': 'nyan', 'dog': 'wan' }
d |= [('bird', 'piyo'), ('pig', 'boo')]
print(d)
# {'cat': 'nyan', 'dog': 'wan', 'bird': 'piyo', 'pig': 'boo'}
dictionaryのクラスで辞書を合成する
dict()
に辞書をアンパックして渡すと、複数の辞書を合成できます。
辞書のアンパックは**d
という風にやります。
d1 = { 'cat': 'nyan', 'dog': 'wan' }
d2 = { 'bird': 'piyo' }
d = dict(**d1, **d2)
print(d)
# {'cat': 'nyan', 'dog': 'wan', 'bird': 'piyo'}
リストを辞書に追加する
リストとリストをzip()
で合成すると辞書のデータにできます。
l1 = ['cat', 'dog']
l2 = ['nyan', 'wan']
print(list(zip(l1, l2)))
# [('cat', 'nyan'), ('dog', 'wan')]
l = zip(l1, l2)
d = { 'bird': 'piyo' }
d.update(l)
print(d)
# {'bird': 'piyo', 'cat': 'nyan', 'dog': 'wan'}
↑の場合、l1
はキー、l2
は値になります。
それぞれをzip()
でちゃんぽんしてそれをd.update()
に渡します。
そうすると辞書を更新することができます。
おわりに
今回はPythonのdictionaryのデータの追加方法について解説しました。
辞書は利用頻度の高いデータ構造ですのでこれらを押さえておいて損は無いかと思います。
🦝 < 吾輩の辞書に
🐭 < 不可能の文字はけっこうある