本記事では、Python3.8で辞書型(dict)の使い方について解説しています。
目次
空の辞書の作成
{}
またはdict()
で空の辞書を作成することができます。
dic = {}
print(dic)
# {}
dic = dict()
print(dic)
# {}
特定の要素を削除
辞書の中の特定の要素を削除するためにはdel
を使用します。
dic = {
'name': 'kenta',
'mail': 'test@sample.com',
'age': 18,
'from': 'Tokyo',
}
del dic['from']
print(dic)
# {'name': 'kenta', 'mail': 'test@sample.com', 'age': 18}
特定の要素を取得
dic[key]
でも値にアクセス可能ですが、存在しないキーにアクセスする可能性を考慮し、getメソッド
で辞書にアクセスするのが安全です。
dic = {
'name': 'kenta',
'mail': 'test@sample.com',
'age': 18,
'from': 'Tokyo',
}
print(dic['name'])
# kenta
print(dic.get('name'))
# kenta
print(dic.get('phone'))
# None
# 存在しないkeyの戻り値を設定することができる
print(dic.get('phone', '-'))
# -
特定の値の編集
既に存在するキーに対して新たに値を設定すると、その値に更新することができます。
dic = {
'name': 'kenta',
'mail': 'test@sample.com',
'age': 18,
'from': 'Tokyo',
}
dic['name'] = 'masato'
print(dic)
# {'name': 'masato', 'mail': 'test@sample.com', 'age': 18, 'from': 'Tokyo'}
複数の値をまとめて編集
複数の値をまとめて編集する場合は、updateメソッド
を使用します。
dic = {
'name': 'kenta',
'mail': 'test@sample.com',
'age': 18,
'from': 'Tokyo',
}
dic.update(name='masato', age=20)
print(dic)
# {'name': 'masato', 'mail': 'test@sample.com', 'age': 20, 'from': 'Tokyo'}
要素の追加
存在しないキーに対して新たに値を設定すると、新しく辞書に追加することできます。
dic = {
'name': 'kenta',
'mail': 'test@sample.com',
'age': 18,
'from': 'Tokyo',
}
dic['birth'] = '20040629'
print(dic)
# {'name': 'kenta', 'mail': 'test@sample.com', 'age': 18, 'from': 'Tokyo', 'birth': '20040629'}
辞書の結合
updateメソッドを用いると、辞書を結合することができます。
d1 = {
'apple': 'りんご',
'grape': 'ぶどう'
}
d2 = {
'lemon': 'レモン',
'orange': 'みかん'
}
d1.update(d2)
print(d1)
# {'apple': 'りんご', 'grape': 'ぶどう', 'lemon': 'レモン', 'orange': 'みかん'}
辞書に**
をつけることで、それぞれの要素をキーワード引数として展開します。こうすることで下記のように辞書を結合することができます。
d1 = {
'apple': 'りんご',
'grape': 'ぶどう'
}
d2 = {
'lemon': 'レモン',
'orange': 'みかん'
}
dic = {**d1,**d2}
print(dic)
# {'apple': 'りんご', 'grape': 'ぶどう', 'lemon': 'レモン', 'orange': 'みかん'}
辞書の複製
copyメソッド
を実行することで、辞書を複製することができます。
dic = {
'name': 'kenta',
'mail': 'test@sample.com',
'age': 18,
'from': 'Tokyo',
}
dic2 = dic.copy()
print(dic2)
要素の整列
keyの整列にはitemsメソッドを使用します。
dic = {
"B": 50,
"A": 100,
"C": 5,
"E": 30,
"D": 40
}
dic2 = dict(sorted(dic.items()))
print(dic2)
# {'A': 100, 'B': 50, 'C': 5, 'D': 40, 'E': 30}
value(値)の整列にはitemsメソッドを使用します。
dic = {
"B": 50,
"A": 100,
"C": 5,
"E": 30,
"D": 40
}
dic2 = dict(sorted(dic.items(), key=lambda x:x[1]))
print(dic2)
# {'C': 5, 'E': 30, 'D': 40, 'B': 50, 'A': 100}
リストから辞書を作成する
キーと値のペアを要素として持つリストをdict()
に渡すことで、辞書型に変換することができます。
l = [
['name', 'kenta'],
['mail', 'test@sample.com'],
['age', 18],
['from', 'Tokyo'],
]
dic = dict(l)
print(dic)
# {'name': 'kenta', 'mail': 'test@sample.com', 'age': 18, 'from': 'Tokyo'}
また、zip()
を組み合わせることで、2つの同じ長さのリストを辞書に追加することができます。
l1 = ['name', 'mail', 'age', 'from']
l2 = ['kenta', 'test@sample.com', 18, 'Tokyo']
dic = dict(zip(l1, l2))
print(dic)
# {'name': 'kenta', 'mail': 'test@sample.com', 'age': 18, 'from': 'Tokyo'}