難易度・正答率・重要度
- 難易度:★★☆☆☆(辞書型の基本操作)
- 正答率:★★★☆☆(構造理解で確実に解ける)
- 重要度:★★★☆☆(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分”)。