Pythonの辞書配列の基本から応用を初心者にもわかりやすく解説
既にリストやタプル等のPython配列を学習した方はご存知かもしれませんが、Pythonは数あるプログラミング言語の中でも配列処理が優れています。
そんなPython配列の中でも辞書(ディクショナリ)は連想配列になります。
連想配列は他のプログラミング言語を学習する上でも挫折する方が少なくありません。
今回はPythonの辞書について、初心者の方にもわかりやすく基礎から応用までを徹底解説していきます。
配列について
まずは初めて配列を学習する方に向けて配列について、簡単に解説をしておきます。
プログラミングの基礎中の基礎である変数は、基本的には1つの要素を代入するのに対して、配列は配列1つに対して複数の要素を代入することが出来ます。
そんな配列の中でも辞書は連想配列になります。
辞書の基本について
それでは今回本題の辞書について、詳しく解説していきます。
上記でも少し触れましたが、辞書は連想配列になります。
リストやタプルの通常配列では複数の要素のみを代入するのに対して、辞書は要素であるバリューと識別して管理できるキーをセットで代入できます。
キーは1つの辞書に対してユニークでなければいけませんが、要素は重複しても問題ありません。
辞書を使用するメリット
辞書を使用するメリットはタプルやリストの場合、格納している要素を取り出す時に要素番号で取り出さなければなりません。
それに対して、辞書の場合は要素であるバリューとセットのキーを指定することで要素を取り出すことが出来る為、プログラミングを行う際に直感的に要素を取り出すことが出来ます。
またシステムに改修を入れたり、バグ調査をする時にもキーが指定されている為、メンテナンスがしやすいのもメリットです。
辞書を使用するデメリット
辞書のデメリットは、タプルに対して処理速度が遅く、初心者の方は記述方法やキーとバリューの考え方や扱い方に慣れるまで時間が必要な点です。
辞書の使い方について
辞書を使う為には、宣言または初期化が必要になります。 まずは辞書を使う為の記述方法について、解説していきます。
辞書の使い方記述方法
辞書を使う為の宣言と初期化の記述方法は、下記になります。
#辞書の宣言
辞書名 = {}
#辞書の初期化
辞書名 = {キー名 : バリュー,キー名 : バリュー,・・・・}
タプルやリストとはまた括弧が違うので、間違えないように注意が必要です。 初期化の際は、キー名とバリューをセットで代入する必要があります。
辞書の使い方使用例について
記述方法だけでは、イメージがしにくいので具体的な辞書の使用例をご紹介します。
#辞書の初期化
dict_sample = {"egg" : 100,"milk" : 150,"meat" : 200}
#print関数で辞書の要素を確認
print(dict_sample)
#実行結果
{'egg': 100, 'milk': 150, 'meat': 200}
実行結果から問題なく辞書にキーとバリューが登録されていることがわかります。
辞書の要素追加について
既に初期化または宣言された辞書に対して要素を追加する方法について、解説していきます。
辞書の要素追加記述方法
辞書で要素を追加する代表的な方法が2つあります。
1つはキーとバリューをセットで1つずつ追加する方法と複数のキーとバリューのセットを追加する連想配列の結合です。
記述方法は下記になります。
#辞書にキーとバリューの1セットを追加する記述
辞書名[キー名] = バリュー
#辞書に複数のキーとバリューを連結させる結合による追加
辞書名.update({キー名 : バリュー,キー名 : バリュー,・・・・})
どちらでも追加することが可能ですが、複数の場合はupdate()を使用した方が効率的に追加することができます。
辞書の要素追加使用例
記述方法だけでは、イメージがしにくいので具体的な辞書の要素追加使用例をご紹介します。
#辞書の初期化
dict_sample = {"a" : 1,"b" : 2,"c" : 3}
#1つの要素を追加
dict_sample["d"] = 4
#複数の要素をupdate()を使った連結
dict_sample.update({"e" : 5,"f" : 6})
#辞書を出力して追加を確認
print(dict_sample)
#実行結果
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
実行結果からどちらの追加方法も要素を追加することが出来ています。
辞書の要素削除について
既に要素を持っている辞書の要素を削除する方法について、解説していきます。
辞書の要素削除記述方法
辞書の要素を削除する記述方法は、いくつか種類があります。
使用頻度の高い記述方法は、下記になります。
#キーを指定することで、キーとバリューのセットを削除1
del 辞書名[キー名]
#キーを指定することで、キーとバリューのセットを削除2
辞書名.pop(キー名[, オブジェクト])
辞書の要素削除使用例
記述方法だけでは、イメージがしにくいので具体的な辞書の要素削除使用例をご紹介します。
#辞書の初期化
dict_sample = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5, 'f': 6}
#del文による指定キーのバリューのみ削除
del dict_sample["a"]
#popを使用した指定キーとバリューの削除
dict_sample.pop("b")
#削除確認用の出力 {'c': 3, 'd': 4, 'e': 5, 'f': 6}
aキーとbキーが削除されて出力されていない事が、確認できます。
辞書の要素検索について
辞書内のキーやバリューを検索する方法について、解説していきます。
タプルとリストとは違い、キーを指定した検索方法もある為、注意が必要です。
辞書の要素検索方法
辞書内のキーやバリューを検索する記述方法は、下記になります。
#キーを検索する記述
検索するキー名 in 辞書名.keys()
#バリューを検索する記述
検索するバリュー in 辞書名.values()
キーとバリューを検索する場合の記述方法が違うので、注意が必要です。
辞書の要素検索する使用例
記述方法だけでは、イメージがしにくいので具体的な辞書の要素検索使用例をご紹介します。
#辞書の初期化
dict_sample = {"apple" : 100,"egg" : 120,"milk" : 130}
#キー検索の使用例
result1 = "apple" in dict_sample.keys()
#バリュー検索の使用例
result2 = 100 in dict_sample.values()
#print関数で検索結果を出力
print(result1)
print(result2)
#実行結果
True
True
キー、バリューともに該当するものがあった為、Trueが出力されています。
検索キーまたはバリューが存在しない場合は、Falseが出力されます。
辞書のソートについて
辞書のソートについて、解説していきます。
辞書のソート方法
辞書のソート記述方法は、sorted関数を使います。
記述方法は、下記になります。
#キー名のみをソート
sorted(辞書名)
#キー名でソート
sorted(辞書名.items())
辞書のソート使用例
具体的な辞書のソート使用例を記述します。
#辞書の初期化
dict_sample = {2 : 0,3 : 1,5 : 2,1 : 3,4 : 1}
#辞書のキーのみをソート
result1 = sorted(dict_sample)
#辞書のキーをソート
result2 = sorted(dict_sample.items())
#ソート結果を出力
print(result1)
print(result2)
#実行結果
[1, 2, 3, 4, 5]
[(1, 3), (2, 0), (3, 1), (4, 1), (5, 2)]
実行結果からソートが出来ていることが確認できます。
sorted関数を利用することで、結果はリストとして登録されます。
ループを使用した辞書要素取得について
リストなどの配列とループ処理は相性がよく様々な場面で利用されることが多いです。
そこで辞書とfor文を使って要素を取得する例をご紹介します。
for文を利用した辞書要素取得方法
for文を利用した辞書の要素取得方法は下記になります。
for key, value in 辞書名.items():
繰り返しする処理
for文を利用した辞書要素取得使用例
それでは実際にfor文を利用して辞書の要素を取得し、出力する例をご紹介します。
#辞書の初期化
dict_sample = {"apple" : 100,"egg" : 120,"milk" : 130}
#辞書の要素をfor文で取得し出力する
for key, value in dict_sample.items():
print(key, value)
#実行結果
apple 100
egg 120
milk 130
上記の実行結果から1つずつのキーとバリューのセットを取得し、出力していることを確認できます。
リストの辞書変換について
リストの辞書変換方法について、解説していきます。
リストの辞書変換方法
リストを辞書に変換する記述方法は、下記になります。
dict(リスト名)
リストの辞書変換使用例
リストを辞書に変換する具体的な使用例をご紹介します。
#リストを辞書に変換できる形で初期化
list_sample = [(1,"a"),(2,"b"),(3,"c"),(4,"d")]
#dict()を使用して辞書に変換
dict_sample = dict(list_sample)
#辞書変換確認用の出力
print(dict_sample)
#出力結果
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
リストから辞書に変換出来たことが、出力結果から確認が出来ます。
入れ子されたリストの辞書変換方法
入れ子されたリストを辞書に変換する方法ですが、基本的には先程と同じ方法で変換することが出来ます。
入れ子されたリストの辞書変換使用例
入れ子されたリストを辞書に変換する使用例をご紹介します。
#入れ子されたリストを初期化
list_sample = [[1,"a"],[2,"b"],[3,"c"],[4,"d"]]
#dict()を使用して辞書に変換
dict_sample = dict(list_sample)
#辞書変換確認用の出力
print(dict_sample)
#実行結果
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
実行結果から、入れ子されたリストでも問題なく辞書に変換できる事が確認できます。
まとめ
今回はPythonの辞書について、解説してきましたが、いかがでしたか。
Python配列の中でも辞書は難しいですが、その分習得することでよりクオリティが高いプログラミングが行えるようになります。
また最初は上手に使いこなすことが出来ない方も多いですが、経験を積んでいく中で自然と辞書の扱いにもなれてきます。
是非辞書を習得する為の参考にして頂ければと思います。
この記事を読んだあなたはPythonでできることとは?初心者が学ぶ方法と仕事への活かし方を解説のSKILLSコースがおすすめです!
ぜひ無料説明動画をご覧ください!