【Python】辞書型(dict)の使い方(追加/削除/連結/整列/要素検索)

辞書の使い方

本記事では、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'}
¥4,180 (2022/10/27 21:09時点 | Amazon調べ)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次