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

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

Python問題集No.2
URLをコピーする
URLをコピーしました!
目次

問題

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をコピーする
URLをコピーしました!

コメント

コメントする

目次
閉じる