【问题标题】:dict.items() function [closed]dict.items() 函数
【发布时间】:2021-06-01 19:41:02
【问题描述】:
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()函数是什么,我不明白为什么需要它。

【问题讨论】:

标签: python


【解决方案1】:

.items() 返回一个列表,其中包含与字典中的 (key, value) 对对应的元组。

这是你的小例子:

example = {
    'female': 8, 
    'male': 4
}

example.items()

[('female', 8), ('male', 4)]

当你这样做时:

for gender, num in example.items():

gender 将采用这些值:female, male

而 num 将采用以下值:8, 4

当使用items() 时,您将并行遍历字典中的项目。

【讨论】:

【解决方案2】:

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

【讨论】:

  • 谢谢你的回答:)
猜你喜欢
  • 2010-09-19
  • 1970-01-01
  • 2021-12-11
  • 2011-07-17
  • 1970-01-01
  • 2023-01-20
  • 2019-06-10
  • 2019-02-04
  • 2012-05-14
相关资源
最近更新 更多