0
3

More than 3 years have passed since last update.

辞書の値を取得する方法、2通り思いつきますか (Python)?

Posted at

この記事ではPython3.7を使用しています。またIDE(統合開発環境)はPyCharm2020.3です。

1. はじめに

 タイトル通り辞書の値を取得する取得方法、2通り思いつきますか?
今回は

question.py
# 今回の記事で使用する辞書
d = {'apple': 'リンゴ', 'orange': 'オレンジ', 'cantaloupe': 'メロン'}

 まず1つも思いつかなかった方、大丈夫です。記事執筆5分前の自分もそうだったのでwww。この記事を読み終わる頃には脱初心者です!
 次に1つは思いついた方、素晴らしいです。そしてこの記事を読んで思いつかなかったもう1つの方法を学んで違いを理解しましょう!!
 その次に2つとも思いついた方、すごいです。違いがあやふやな人はこの記事を読んでしっかり理解しましょう!違いも分かる人は「mitsu4310」と検索して自分の他の記事を読んでください!!!
 最後に3つ以上方法が思いついた方、私のような初心者が出る幕はありません。そして別解をコメントで教えて下さい!!!!

2. 方法その1 辞書[キー]を使用する

 まず1つ目は「辞書[キー]」を使用する方法です。

answer1.py
d = {'apple': 'リンゴ', 'orange': 'オレンジ', 'cantaloupe': 'メロン'}
print(d['apple'])

# 'リンゴ'

 しかしこの方法には問題があります。それは存在しないキーを指定するとエラーになります。例えば本来ならappleにしなければいけないところをスペルミスでAppleにすると次のようになります。

answer1_error2
d = {'apple': 'リンゴ', 'orange': 'オレンジ', 'cantaloupe': 'メロン'}
print(d['Apple'])

# KeyError: 'Apple'

3. 方法その2 getメソッドを使う方法

 次に紹介する方法はgetメソッドを使ったやり方です。

answer2
d = {'apple': 'リンゴ', 'orange': 'オレンジ', 'cantaloupe': 'メロン'}
print(d.get('apple', False))

# 'リンゴ'

 第2引数は省略できます。第2引数を指定すると存在しないキーを取得した場合でもエラーになりません。ちなみに第2引数はFalseでなくても構いません。

answer2_nonexistence
d = {'apple': 'リンゴ', 'orange': 'オレンジ', 'cantaloupe': 'メロン'}
print(d.get('Apple', False))

# False

4. まとめ

 今回は辞書の値を取得する方法を2通り解説しました。その方法は「[辞書]キー]」とgetメソッドを使う方法です。また1つ目の方法は存在しないキーを指定するとエラーになることも説明しました。
 ここまで記事を読んでいただきありがとうございます。説明に誤り等があればコメントにて教えていただけるとありがたいです。「過ちては改むるに憚ること勿れ」なので。参考文献一覧の次におまけトークがあるのでよかったらそちらも読んでください。

参考文献一覧
Pythonのgetメソッドについて現役エンジニアが解説【初心者向け】
【Python入門】dictionary(辞書)の使い方。基本と応用

おまけトーク

 辞書のキーで登場したcantaloupeはどうやらマスクメロンの一種を表すようです。だったらmelonでいいじゃん、ということでキーをmelonに変更しましょう。

change_to_melon.py
d = {'apple': 'リンゴ', 'orange': 'オレンジ', 'cantaloupe': 'メロン'}

d['melon'] = d.pop('cantaloupe')
print(d)

# {'apple': 'リンゴ', 'orange': 'オレンジ', 'melon': 'メロン'}
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3