4.
プログラムやっていると、感覚的に分かる問題ですが、経験が無い場合はなかなかハードルは高めかもしれません。
ある「キー」と「値」がセットになった構造をデータベースとして構成する場合がよくあります。そしてそれらが何セットか複数のある連なりを、Dictionary と呼ぶ言語があります。人気のPythonとかC#とかにありますね。
問題文では、examというDictionaryという構造が定義されています。その中は、ちょっとだけトリッキーな感じですが、問題文の例を読んでいけば、その構造が分かるでしょう。
その中では、「キー」"A"~"G"まで7つ登録されているのが分かると思います。そして、そのキーに対応する値は、{ }で囲まれたデータ、つまりはDictionaryが入っています。つまり、Dictionaryの中に、さらにDictionaryが入っている構造なわけですね。
そして、中の方のDictionaryの構造を見ると、「キー」に「科目名」、「試験時間」、「配転」という3種類あり、そのキーと値のセットが1つずつ計3個あるのが分かると思います。その3セットが、上位のキー"A" ~ "G"にそれぞれ紐づいているわけですね。
しかし、よく見ると、中のDictionaryが3つのパターンと、2つのパターンがあるようですね。どうやら、配転は無しという場合もあるようです。
問題文で重要なのが、キー[A]の中のDictionary の中の科目名の値の表し方を、exam[A] [科目名]と表すことができます。つまりは、
exam[A][科目名] = "科目A"
となりますね。
exam = {
"A":{"科目名":"科目A", "試験時間":"60 分", "配点":"100 点"},
"B":{"科目名":"科目B", "試験時間":"60 分", "配点":"100 点"},
"C":{"科目名":"科目C", "試験時間":"90 分", "配点":"100 点"},
"D":{"科目名":"科目D", "試験時間":"90 分"},
"E":{"科目名":"科目E", "試験時間":"60 分", "配点":"100 点"},
"F":{"科目名":"科目F", "試験時間":"60 分", "配点":"100 点"},
"G":{"科目名":"科目G", "試験時間":"90 分"}
1.exam["A"]["試験時間"] の値と exam["B"]["試験時間"] の値は等しい。
まず、exam["A"]["試験時間"] は、"60分"で、exam["B"]["試験時間"] は、60分です。これは正しい文章です。
2.exam["C"]["配点"] の値は、"100 点" である。
exam["C"]["配点"] ="100点" は正しいですね。
3.exam["D"] に、キー "配点" は存在しない。
exam["D"] の中のDictionaryを見てみて、確かに"配転"が無いですね。これはその通りです。
4.exam["E"]["試験時間"] の値と exam["G"]["試験時間"] の値は等しい。
exam["E"]["試験時間"] = 60分ですね。
exam["G"]["試験時間"] = 90分ですね。いや、あからさまに違います。これが正解になります。しかし、これが正解って面白みがありませんけどね。
5.exam["F"]["科目名"] の値は、"科目F" である。
exam["F"]["科目名"] = "科目F"ですね。正しい文章です。
以上より、正解は4となります。