dict.items() 函数

时间:2021-03-03 08:32:52

标签: python

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() 函数,也不明白为什么需要它。

2 个答案:

答案 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