Skip to main content
 首页 » 编程设计

python之如何遍历整个字典键

2025年05月04日20cmt

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 

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