【Python】辞書型を扱ってみよう!

Pythonロゴ

Pythonには変数として「数値」「文字列」「配列」「辞書」など複数のタイプがあります。 こちらの記事では「辞書」についてまとめてみました。

辞書型(dict型)について

波括弧 {} の中にキーと要素をセットで保存する仕組みになります。
リスト、タプル型はインデックス(数字)だったのに対してキー(文字列)にて要素を保管します。PHPの連想配列と同じ仕組みになります。

辞書型を作成

dict1 = {'l': 10, 'm': 20, 'n': 30}
# or
dict1 = dict(l=10, m=20, n=30)
print(dict1)
print(type(dict1))

# 結果
{'l': 10, 'm': 20, 'n': 30}
<class 'dict'>

指定キーの要素取得

dict2 = {'l': 10, 'm': 20, 'n': 30}
print(dict2['m'])  # mキーの値取得

# 結果 20

指定キーの要素変更

dict3 = {'l': 10, 'm': 20, 'n': 30}
dict3['m'] = 99  # mキーの値変更
print(dict3)

# 結果 {'l': 10, 'm': 99, 'n': 30}

指定キーの要素削除

dict4 = {'l': 10, 'm': 20, 'n': 30}
del dict4['m']  # mキーの値削除
print(dict4)

# 結果 {'l': 10, 'n': 30}

辞書型のよく使う処理

指定キーの要素取得(例外対応)

通常、存在しないキーの要素を取得すると例外エラーが発生します。
getメソッドを使用することで存在しない場合の例外エラーとデフォルト値を設定する事ができます。

dict5 = {'l': 10, 'm': 20, 'n': 30}
print(dict5['z'])  # 存在しないzキーの値取得

# 結果
# Traceback (most recent call last):
#  File "/opt/project/dict.py", line 25, in <module>
#    print(dict2['z'])  # 存在しないzキーの値取得
# KeyError: 'z'
dict6 = {'l': 10, 'm': 20, 'n': 30}
print(dict6.get('z'))  # 存在しないzキーの値取得
print(dict6.get('z', 0))  # 存在しないzキーの値取得(デフォルト:0)

# 結果
None
0

繰り返し処理(for)を使ったキー:要素の取得

dict7 = {'l': '10', 'm': '20', 'n': '30'}
for key, num in dict7.items():
    print(key + ':' + num)

# 結果
l:10
m:20
n:30

繰り返し処理(for)を使ったキーの取得

dict8 = {'l': '10', 'm': '20', 'n': '30'}
for key in dict8.keys():
    print(key)

# 結果
l
m
n

繰り返し処理(for)を使った要素の取得

dict9 = {'l': '10', 'm': '20', 'n': '30'}
for num in dict9.values():
    print(num)

# 結果
10
20
30

まとめ

辞書型について基本的な部分を再確認いたしました。
辞書型は任意のキーで格納・取得する事ができますので社内で決まったコードと内容を変数に格納して使うなど用途があります。
次回は集合型について確認していきます。

サンプルプログラム

こちらの記事で作成したプログラムはGitHub環境にアップしております。
下記からダウンロードいただけます。

参考 dict.py スクリプトGitHub python-beginner Pythonロゴ【Python】集合型を扱ってみよう!Pythonロゴ【Python】タプル型(配列)を扱ってみよう!