Pythonの辞書(dict)に要素を追加する方法まとめ

Pythonの辞書(dict)に、要素を追加する方法についてまとめています。具体的には、次の3つの方法があります。

  • 辞書[キー] = 値:キーがあれば更新、なければ追加
  • setdefault():キーがあればそのまま、なければ追加
  • update():別の辞書(dict2)のキーと値を、元の辞書(dict1)に追加/更新

これらは、既に存在するキーの値を更新するのか、まだ存在しない新しいキーと値を追加するのかなどによって使い方が分かれます。

それぞれ見ていきましょう。

目次

1. キーが存在すれば更新、存在しなければ追加 | []

辞書に要素を追加する最も基本的な方法は、次のように、対象のキーを指定して値を追加するやり方です。

In [0]:
辞書[キー] = 

新しいキーと値を指定した場合は、それらが追加されます。既に存在するキーを指定した場合は、そのキーの値が上書きされます。

以下をご覧ください。

In [1]:
dict = {"red":1, "blue":2, "yellow":3}
dict["white"] = 4  #新しいキーの場合は、そのキーと値を追加
dict["blue"] = 5  # 既に存在するキーの場合は値を上書き
print(dict)
{'red': 1, 'blue': 5, 'yellow': 3, 'white': 4}

これを使うと、空の辞書や初期化された辞書(値が全て同じの辞書)に、キーと値を効率的に追加していくことができます。

In [2]:
dict = {}
 
#キーと値を追加していきます。
dict["one"] = 1
dict["two"] = 2
dict["three"] = 3
 
print(dict)
{'one': 1, 'two': 2, 'three': 3}

なお、空の辞書は、dict()関数で、「dict = dict()」と引数を空にして作ることもできます。

2. キーが存在すればそのまま、存在しなければ追加 | setdefault()

既にキーが存在する時は何もせず、キーが存在しない場合のみ追加するには、 setdefault() メソッドを使います。次のように使います。

In [0]:
辞書.setdefault(キー, )

既にキーが存在する場合は、そのキーの値が何になっているのかを返します。そして、引数で値の指定を省略すると、値はNone(空)になります。

実際に見てみましょう。

In [1]:
dict = {'red':1, 'blue':2, 'yellow':3}
dict.setdefault('blue', 5)  # キーが存在するので値を返す
Out[1]:
2

キーが存在しなければ、そのキーと値を追加します。

In [2]:
dict.setdefault('white', 4)
print(dict)  # キーが存在しない場合はキーと値を追加
{'red': 1, 'blue': 2, 'yellow': 3, 'white': 4}

キーのみで値を指定しない場合は、値はNoneになります。

In [3]:
dict.setdefault('black')
print(dict)  # 値を指定しない場合は値がNoneのキーを追加
{'red': 1, 'blue': 2, 'yellow': 3, 'white': 4, 'black': None}

3. 別の辞書の値を追加/更新する | update()メソッド

update()メソッドでは、ある辞書に、別の辞書の要素を追加することができます。

次のように書きます。

In [0]:
要素を追加したい辞書.update(追加する辞書)

「要素を追加したい辞書」の側に、「追加する辞書」の要素が追加されます。同じキーが存在する場合は、その値が上書きされます。

以下をご覧ください。

In [1]:
dict1 = {'red':1, 'blue':2, 'yellow':3}
dict2 = {'yellow':30, 'white':4, 'black':5}

dict1.update(dict2)
print(dict1)
{'red': 1, 'blue': 2, 'yellow': 30, 'white': 4, 'black': 5}

‘yellow’の値は更新され、’white’と’black’のキーと値は追加されています。

4. まとめ

いかがだったでしょうか。

それぞれの使い分けは、以下のように覚えておきましょう。

  • 辞書に新しい要素を追加するには [] を使う。
  • 重複するキーがあった場合には値を更新したくないならsetdefault()を使う。
  • ある辞書に別の辞書の要素を追加したい場合はupdate()を使う。

Python初心者におすすめのプログラミングスクール

「未経験からでもPythonを学べるプログラミングスクールを探しているけど、色々ありすぎてわからない」なら、次の3つのプログラミングスクールから選んでおけば間違いはありません。

Aidemy Premium:全くの初心者ができるだけ効率よく短期間で実務的に活躍できるAI人材になることを目的とした講座。キャリアカウンセリングや転職エージェントの紹介などの転職支援も充実しており、受講者の転職成功率が高い。

AIジョブカレPythonの基本をおさえた人が、実際に機械学習やディープラーニングを活用できるようになるための講座。転職補償型があるなどキャリア支援の内容が非常に手厚く、講師の質も最高クラス。コスパ最高。Python初心者用の対策講座もある。

データミックスプログラミング経験者のビジネスマンが、更なるキャリアアップのためにデータの処理方法を学んでデータサイエンティストになるための講座。転職だけでなく起業やフリーランスとして独立する人も多い。Python初心者用の対策講座もある。

特に、あなたが以下のような目標を持っているなら、この中から選んでおけば間違いはないでしょう。

・未経験からPythonエンジニアとして就職・転職したい
・AIエンジニアやデータサイエンティストとしてキャリアアップしたい
・起業やフリーランスを視野に入れたい

理由は「Python初心者のためのおすすめプログラミングスクール3選」で解説しています。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメント一覧 (2件)

  • こういうサンプルソースを探しています。

    dict1 = {‘red’:1, ‘blue’:2, ‘yellow’:3}
    dict2 = {‘yellow’:30, ‘white’:4, ‘black’:5}

    dict1とdict2を結合して、下記のdict3のような形式にするにはどうすればよいでしょうか。
    dict3 = {“result”:[{“red”:1, “blue”:2, “yellow”:3},{“yellow”:30, “white”:4, “black”:5}]}

  • 通りすがりですが動くだけでよければこんな感じでかけますよ
    動いただけなので処理が最適なのかまではみていませんが

    PC / % cat test2.py
    dict1 = {‘red’:1, ‘blue’:2, ‘yellow’:3}
    dict2 = {‘yellow’:30, ‘white’:4, ‘black’:5}

    result = []
    result.append(dict1)
    result.append(dict2)

    dict3 = {}
    dict3[‘result’] = result

    print(dict3)
    PC / % python3 test2.py
    {‘result’: [{‘red’: 1, ‘blue’: 2, ‘yellow’: 3}, {‘yellow’: 30, ‘white’: 4, ‘black’: 5}]}

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる