Pythonのsetdefault関数について現役エンジニアが解説【初心者向け】
初心者向けにPythonのsetdefault関数について現役エンジニアが解説しています。setdefault関数とは、ディクショナリにキーとバリューを登録するための関数です。同じキーがあった場合に上書きされることが無いのが特徴です。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonのsetdefault関数について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。
Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pythonのsetdefault関数について詳しく説明していくね!
お願いします!
目次
setdefault関数とは
setdefault関数とは、ディクショナリに存在しないキーがあった場合にキーとバリューを登録するための関数です。
「ディクショナリ名[キー名] = バリュー名」のようなキーを指定してバリューを代入する方法と違い、ディクショナリに既にキーが存在している場合には上書きされないというメリットがあります。
setdefault関数の使い方
setdefault関数は以下のような形式で用います。
ディクショナリ名.setdefault(キー名, バリュー名)
ちなみに、バリュー名を指定しない場合はNoneが渡されます。
実際に書いてみよう
これだけではまだ具体的なイメージが湧かないと思うので、実際にコードを書いていきましょう。
まずは果物の名前と価格の関係をディクショナリとして定義し、setdefault関数を使って新たにpeachに関する情報を追加していきます。
ディクショナリにないキーを指定
>>>fruits_dict = {"apple":120, "orange":150, "banana":60} >>>fruits_dict.setdefault("peach", 300) >>>print(fruits_dict) {'apple': 120, 'orange': 150, 'banana': 60, 'peach': 300}
ちゃんとpeachについての情報が追加されていますね。
それでは次は、既にあるキーを指定して情報の追加を試してみます。
ディクショナリに既にあるキーを指定
>>>fruits_dict.setdefault("apple", 250) >>>print(fruits_dict) {'apple': 120, 'orange': 150, 'banana': 60, 'peach': 300}
appleの情報は更新されていないことが確認できました。このように、一度登録したデータに対してsetdefault関数を使用しても上書きされる心配はありません。
最後に、引数にキーだけを指定してみます。
引数にキーのみを指定
>>>fruits_dict.setdefault("grape") >>>print(fruits_dict) {'apple': 120, 'orange': 150, 'banana': 60, 'peach': 300, 'grape': None}
この場合はNoneがバリューとして追加されました。このような使い方は使用場面としては少ないかもしれませんが、頭の片隅くらいには入れておくと良いかと思います。
まとめ
この記事ではPythonのsetdefault関数の使い方についてご説明しました。
setdefault関数を使うと、ディクショナリにデフォルトとして用意しておきたい値を設定できます。上書きの心配がないので、心置き無く使える点が便利です。
ディクショナリの操作はPythonの基本ですので、是非とも使いこなせるようにしておきましょう。
監修してくれたメンター
柴山真沙希(しばやままさき)
大手IT企業などでエンジニアとして2年ほど勤務した後、個人事業主としてプログラミングスクール「エンペサール」を経営。子供から大人まで幅広い層を対象にプログラミングを教えている。 得意言語はPython, HTML, CSSで、機械学習やデータ分析、スクレイピングなどが得意。サッカー観戦や読書が趣味である。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。