Python問題集を解いてみよう!!

【Python問題集】No.2 辞書とfor文

Python問題集No.2
目次

問題

2つの辞書、dict_adict_b があります。

dict_a = {'卵': 100, 'パン': 150}
dict_b = {'トマト': 120}

{'食品の名前': 値段} という形式になっています。

dict_bのトマトの値段と、dict_aの各食品の値段を比較して、トマトの値段より小さい場合は、その食品の値段をトマトの値段に入れ替えて、入れ替えた後にdict_aの内容を表示するプログラムを作成してください。 

値段が同じ場合は入れ替えないようにしてください。 

ただし、dict_aの食品の数が増えても、プログラムを変更する必要がないように作成してください。

dict_aが上記になっている場合は、

{'卵': 100, 'パン': 120}

と表示するプログラムになります。

おすすめのレンタルサーバー

解答

解答を見る前に、一度ご自身で考え、コードを書いてみることをオススメします。

解説

この問題のポイントは次の2点です。

  • 辞書の値を入れ替える
  • for文の中で辞書のキーと値を順番に取り出す

順番に見ていきます。

辞書の値を入れ替える

辞書の値を入れ替えたい場合は、入れ替えたい値のキーを指定して、新しい値を代入します。

sample_dict = {'英語': 75, '数学': 50, 'Python':33}

print('入れ替え前のsample_dict:', sample_dict)

sample_dict['Python'] = 100

print('入れ替え後のsample_dict:', sample_dict)

上記の実行結果

入れ替え前のsample_dict: {'英語': 75, '数学': 50, 'Python': 33}
入れ替え後のsample_dict: {'英語': 75, '数学': 50, 'Python': 100}

辞書の値の入れ替え(変更)については、辞書型について紹介している記事にも書いていますので、そちらも参考にしてください。

for文の中で辞書のキーと値を順番に取り出す

今回の問題のように、2つの要素しか持たない辞書であれば、1つずつキーを指定する書き方でも良いかもしれませんが、10個、100個と要素の数が多い辞書を扱う場合はfor文を使うのが便利です。

for文の中で辞書のキーと値を順番に取り出したい時はitems()メソッドを使います。

sample_dict2 = {'りんご': 200, 'みかん': 400, 'ばなな': 150}

for key, value in sample_dict2.items():
    print('キー:', key, '値:', value)

上記の実行結果

キー: りんご 値: 200
キー: みかん 値: 400
キー: ばなな 値: 150

キーだけを取り出すkeys()メソッド、値だけを取り出すvalues()メソッドもあります。

ちなみに、メソッドは使わないで、辞書をそのまま指定した場合はキーが取り出されます。

この辺りはfor文について紹介した記事でも書いていますので、そちらも参考にしてください。

Colab

解答例や解説のコードは Google Colaboratory で確認しています。

環境構築の不要な Google が提供している Webサービスなので、Python を学習中の方にはオススメです。

おわりに

今回の問題は LINE のオープンチャットに投稿されたものです。

今後も具体的な問題・課題の解説記事を増やしていきたいと思っています。

解説して欲しい問題・課題がありましたら、お問い合わせフォームからご連絡ください。

以上です。

スポンサーリンク

Python問題集No.2

この記事が気に入ったら
フォローしてね!

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

コメント

コメントする

目次