Python の辞書からキーと値を for で取得する:dict_items について

Python の for に辞書をあてると、キーだけが出てきます。

data = {'英語': 59, '数学': 76, '国語': 43, '理科': 92, '社会': 80}

for key in data:
	print(key)

出力

英語
数学
国語
理科
社会

for で辞書の値を出すには次のようにします。

data = {'英語': 59, '数学': 76, '国語': 43, '理科': 92, '社会': 80}

for key, value in data.items():
	print(f'{key} => {value}')

出力

英語 => 59
数学 => 76
国語 => 43
理科 => 92
社会 => 80

items()

items() は辞書を dict_items という型にする関数です。

data = {'英語': 59, '数学': 76, '国語': 43, '理科': 92, '社会': 80}

print(data.items())
# dict_items([('英語', 59), ('数学', 76), ('国語', 43), ('理科', 92), ('社会', 80)])

data.items() は dict_items という型です。dict_items はペアのリストに見えますが、正確には Python のリストでなく、リストの関数は使用できません。

無題の画像

元の辞書が変わると、その dict_items も変わります。

data = {'英語': 59, '数学': 76}

print(data.items())
# dict_items([('英語', 59), ('数学', 76)])

items = data.items()

data['理科'] = 76

print(items)
# dict_items([('英語', 59), ('数学', 76), ('理科', 76)])

dict_items の要素はタプルです。

data = {'英語': 59, '数学': 76}

items = data.items()

for item in items:
	print(item)

出力

('英語', 59)
('数学', 76)