はじめてのPython!setdefaultで辞書のキーと値を追加する方法

辞書型はキーと値を定義できる便利なオブジェクトですが、場合によっては辞書型のオブジェクトのKeyが存在しない場合にKeyを追加する処理を実装したい場合があります。

「指定したKeyが存在しない場合は辞書に追加する方法が知りたい」

ここでは、辞書に指定したKeyとValueを追加するsetdefaultメソッドについて、以下の内容で解説していきます。


・辞書型(dictionary)について
・setdefaultメソッドとは
・setdefaultメソッドの使い方(Keyが存在する場合)
・setdefaultメソッドの使い方(Keyが存在しない場合)

setdefaultメソッドについて、わかりやすく解説していますのでぜひ参考にしてください。

なお、Pythonの記事については、こちらにまとめています。

辞書型(dictionary)について

setdefaultメソッドの説明に入る前に、辞書型(dictionary)についておさらいしておきましょう。

辞書型は{}の中にKeyとKeyに紐づくvaluseの組み合わせが含まれているオブジェクトのことを指します。

辞書型を構成するには、以下のようにkeyとvalueをコロンで区切ったペアとなっています。

dict1 = {'key1':'value1', 'key2':'value2', 'key3':'value3'}

print(dict1) # {'key1':'value1', 'key2':'value2', 'key3':'value3'}

辞書型については以下の記事で詳しく解説していますので、参考にしてください。

そんな辞書型で使える便利なメソッドであるsetdefaultについて、次項より詳しく解説していきます!

setdefaultとは

setdefaultメソッドは対象の辞書型のオブジェクトにKeyが存在しない場合は、指定したKeyとValueを追加するメソッドです。

また、対象の辞書型のオブジェクトに引数で指定したKeyが存在する場合は指定したKeyのValueを取得することができます。

書き方:

辞書オブジェクト. setdefault(Key, Value)

setdefaultの引数には、対象の辞書オブジェクトに追加または参照するKeyと紐づくValueを指定します。

既にKeyが存在する場合は、引数で指定したKeyの値を取得し、辞書自体は変更されません。

Keyが存在しない場合は引数で指定した値を返し、対象の辞書は引数で指定したKeyと値が追加されます。

setdefaultの使い方

それではsetdefaultの使い方を見ていきましょう

対象オブジェクトにKeyが存在する場合

以下はsetdefaultメソッドで対象の辞書オブジェクトに存在するKeyを指定しています。

# 辞書を作成
dict1 = {'apple':'100円', 'orange':'80円', 'melon':'700円'}

# setdefaultでKeyであるorangeの値をチェック
val = dict1.setdefault('orange', '120円')

print(val)
print(dict1)

実行結果:

80円
{'orange': '80円', 'apple': '100円', 'melon': '700円'}

前述したとおりsetdefaultメソッドは対象のオブジェクトに引数で指定したKeyが存在する場合は対象オブジェクトの値を返します。

また、対象のオブジェクト自体は変更されません。

対象オブジェクトにKeyが存在しない場合

続いてsetdefaultメソッドで対象の辞書オブジェクトに存在しないKeyを指定してみましょう。

# 辞書を作成
dict1 = {'apple':'100円', 'orange':'80円', 'melon':'700円'}

# setdefaultで存在しないKeyを指定した場合
val = dict1.setdefault('strawberry', '200円')

print(val)
print(dict1)

実行結果:

200円
{'apple': '100円', 'strawberry': '200円', 'orange': '80円', 'melon': '700円'}

対象のオブジェクトに存在しないKeyを指定した場合は、対象のオブジェクトに引数で指定したKeyとValueが設定されていることがわかりますね!

また、返り値には第二引数で指定したValueの値を取得しています。

まとめ

ここでは対象の辞書に指定したKeyとValueを追加できるsetdefaultについて、以下の内容を追加しました。

  • 辞書型(dictionary)について
  • setdefaultメソッドとは
  • setdefaultメソッドの使い方(Keyが存在する場合)
  • setdefaultメソッドの使い方(Keyが存在しない場合)

setdefaultメソッドを使用すれば、KeyとValueの追加にとどまらず、Keyの存在チェックも可能ですので使い方についてはしっかりと理解しておきましょう。

もし、setdefaultメソッドについて忘れてしまったら、この記事を思い出してくださいね!

Writer

侍テック編集部

株式会社SAMURAI

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI ENGINEER Plus

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら