チャポケのブログ

勉強したことをまとめておく。

Python dict型:辞書型

dict型の定義、アクセス

dict型は、pythonkeyとvalueの組み合わせで扱うデータ型である。
list型はindexを使ってデータにアクセスするが、
dict型はindexの代わりにkey文字列を使ってvalueデータにアクセスする。
keyは文字列型で、valueは任意の型でよい。

# 辞書型の定義
aaa = {"東":"卯", "南":"午", "西":"酉", "北":"子"}

print(aaa) # {'東': '卯', '南': '午', '西': '酉', '北': '子'}
print(aaa["北"]) # 子
print(aaa["南"]) # 牛

# 存在しないkeyで参照アクセスするとエラーになる
print(aaa["南東"]) # KeyError: '南東'

辞書サイズの取得、辞書データの追加と削除

len()関数で、辞書サイズを取得できる。
存在するkeyでアクセスして代入すると、辞書データを書き換えできる。
存在しないkeyでアクセスして代入すると、辞書データを追加できる。
.setdefault()メソッドを使うと、上書き禁止で辞書データを追加できる。
del文を使うと、辞書データを削除できる。

# 辞書型の定義
aaa = {"東":"卯", "南":"午", "西":"酉", "北":"子"}

# 辞書データの書き換え
aaa["南"] = "south" # 存在するkey="南"で、データ書き換え
print(aaa) # {'東': '卯', '南': 'south', '西': '酉', '北': '子'}
print(aaa["南"]) # south
print(len(aaa))  # 4

# 辞書データの追加
aaa["南東"] = "巽" # 存在しないkey="南東"で、データ追加
print(aaa) # {'東': '卯', '南': 'south', '西': '酉', '北': '子', '南東': '巽'}
print(len(aaa))  # 5

# 辞書データの追加 ※上書き禁止
aaa.setdefault("南西", "坤") # 存在しないkey="南西"で、データ追加
print(aaa) # {'東': '卯', '南': 'south', '西': '酉', '北': '子', '南東': '巽', '南西': '坤'}
print(len(aaa))  # 6

aaa.setdefault("西", "west") # 存在するkey="西"では、データの上書きをしない
print(aaa) # {'東': '卯', '南': 'south', '西': '酉', '北': '子', '南東': '巽', '南西': '坤'}
print(len(aaa))  # 6

# 辞書データの削除
del aaa["西"]
print(aaa) # {'東': '卯', '南': 'south', '北': '子', '南東': '巽', '南西': '坤'}
print(len(aaa))  # 5

辞書と辞書の結合

.update()メソッドで、2つの辞書を結合できる。
このkeyが重複する場合、上書きされる。

# 辞書型の定義
aaa = {"東":"卯", "西":"酉"}
bbb = {"南":"south", "北":"north", "東":"east"}

# 辞書と辞書の結合 ※重複データは上書き
aaa.update(bbb)
print(aaa) # {'東': 'east', '西': '酉', '南': 'south', '北': 'north'}
print(len(aaa))  # 4