ユーニックス総合研究所

  • home
  • archives
  • python-dictionary-add

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のデータの追加方法について解説しました。
辞書は利用頻度の高いデータ構造ですのでこれらを押さえておいて損は無いかと思います。

🦝 < 吾輩の辞書に

🐭 < 不可能の文字はけっこうある