gender_freq = {}
for row in moma:
gender = row[5]
if gender not in gender_freq:
gender_freq[gender] = 1
else:
gender_freq[gender] += 1
for gender, num in gender_freq.items():
template = "There are {n:,} artworks by {g} artists"
print(template.format(g=gender, n=num))
为什么在 for 循环中需要 .items()
?
我不知道什么是 .items()
函数,也不明白为什么需要它。
答案 0 :(得分:2)
.items()
返回一个包含与字典中的 (key, value) 对对应的元组的列表。
这是你的小例子:
example = {
'female': 8,
'male': 4
}
example.items()
是
[('female', 8), ('male', 4)]
当你这样做时:
for gender, num in example.items():
性别将采用以下值:female, male
和 num 将采用以下值:8, 4
使用 items()
时,您是在并行遍历字典的项目。
答案 1 :(得分:1)
items()
允许您在 for 循环中获取 dict 的键/值对,这将避免您每次都像这样循环键并询问值:
for gender in gender_freq:
print(template.format(g=gender, n=gender_freq[gender]))
还有一件事,使用 defaultdict
这将允许您避免每次要填充字典时检查密钥:
from collections import defaultdict
gender_freq = defaultdict(int)
for row in moma:
gender = row[5]
gender_freq[gender] += 1