過去問解説(経営情報システム)_2022年(R4年) 第2問

難易度・正答率・重要度

  • 難易度:★★☆☆☆(辞書型の基本操作)
  • 正答率:★★★☆☆(構造理解で確実に解ける)
  • 重要度:★★★☆☆(Pythonの基礎文法)

問題文

ある値(value)を何らかのキー(key)を付けて記憶するデータ構造は、さまざまなプログラミング言語で利用可能である。

Python においては、辞書(dictionary)と呼ばれるデータ型が組み込まれている。辞書は、「キー:値」という形のペアの集合であり、

{キー1:値1, キー2:値2, …, キーn:値n}

のように、「キー:値」の各ペアをカンマで区切り、{ } で囲むことで定義できる。例えば、

mis = {"科目名":"経営情報システム", "試験時間":"60分"}

として辞書 mis を定義でき、mis["科目名"] でキー “科目名” に対応する値である “経営情報システム” を、また、mis["試験時間"] でキー “試験時間” に対応する値である “60分” を参照することができる。

なお、次のように、値には辞書型のデータも指定することができる。

employee = {
  "E001": {"氏名":"中小太郎", "部門":"財務部"},
  "E002": {"氏名":"診断次郎", "部門":"総務部"}
}

この場合、employee["E001"]["氏名"] で “中小太郎” を参照することができる。

いま、次のように exam を定義するとき、値の参照に関する記述として、最も不適切なものを下記の解答群から選べ

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分"}
}

〔解答群〕

exam[“A”][“試験時間”] の値と exam[“B”][“試験時間”] の値は等しい。
exam[“C”][“配点”] の値は、”100点” である。
exam[“D”] に、キー “配点” は存在しない。
exam[“E”][“試験時間”] の値と exam[“G”][“試験時間”] の値は等しい。
exam[“F”][“科目名”] の値は、”科目F” である。

出典:中小企業診断協会|2022年度 第1次試験問題|経営情報システム(PDF)

解答

  • 正解:エ(exam[“E”][“試験時間”] と exam[“G”][“試験時間”] は等しくない)

解説

  • ア:○
    exam[“A”][“試験時間”] = “60分”、exam[“B”][“試験時間”] = “60分” → 等しい。
  • イ:○
    exam[“C”][“配点”] = “100点” → 正しい。
  • ウ:○
    exam[“D”] に “配点” キーは存在しない → 正しい。
  • エ:×
    exam[“E”][“試験時間”] = “60分”、exam[“G”][“試験時間”] = “90分” → 等しくない → 不適切。
  • オ:○
    exam[“F”][“科目名”] = “科目F” → 正しい。

学習のポイント

  • 辞書型(dict): キーと値のペアで構成され、ネストされた辞書も扱える。
  • キーの存在確認: 存在しないキーを参照するとエラーになるため、事前確認が重要。
  • 値の比較: 文字列の一致は厳密に比較される(”60分” ≠ “90分”)。