gpt4 book ai didi

python - 如何遍历整个字典键?

转载 作者:太空宇宙 更新时间:2023-11-04 08:30:42 37 4
gpt4 key购买 nike

Diction 是一个包含键和值的字典。我想遍历字典键,我将在其中返回一组值小于或等于 20 的键。但是,我只遍历一个键。如何遍历整个字典键?

def total(diction):
for key in diction:
if diction[key] <= 20:
return [key]

最佳答案

您的函数在遇到第一个 return 语句时结束执行。

您可以像这样调整您的功能。

def total(diction):
result = []
for key, value in diction.items():
if value <= 20:
result.append(key)
return result

此函数将满足您的条件的键附加到列表中,并且仅在查看了 dict 中的所有(键,值)对后才返回该列表。

或者,您可以编写一个生成器函数:

def total_gen(diction):        
for key, value in diction.items():
if value <= 20:
yield key

您可以考虑为函数起一个比 total 更好的名称,并让它们使用一个额外的参数(例如名为 limit)以避免硬编码值 20

演示:

>>> d = {'a': 5, 'b': 100, 'c': 23, 'd': -2}
>>> total(d)
>>> ['d', 'a']
>>> list(total_gen(d))
>>> ['d', 'a']

当然,你也可以使用简洁的列表或生成器表达式:

>>> [key for key, value in d.items() if value <= 20]
>>> ['d', 'a']
>>>
>>> for k in (key for key, value in d.items() if value <= 20):
...: print(k)
...:
d
a

生成器函数和生成器表达式在您不需要一次将所有键存储在内存中的情况下特别有用 - 例如,如果您只想迭代它们。

关于python - 如何遍历整个字典键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53162252/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com