Skip to main content
 首页 » 编程设计

Python之字典之最大值和根据键与函数和 for 循环

2025年05月04日19wayfarer

我想从具有函数和 for 循环的字典中获取最大值和根据键。这是我的代码:

Autolager = {'Audi' : 9, 'BMW' : 11, 'Mercedes' : 8} 
 
def Maxlagerbestand(Autolager):   
    MaxAutoValue = 0   
    MaxAutoName = None   
    for i in Autolager:   
        if Autolager[i] > MaxAutoValue:   
            MaxAutoValue = Autolager[i]   
            MaxAutoName = [k for k, v in Autolager.items() if v == MaxAutoValue]   
        return (MaxAutoValue, MaxAutoName)       
print (Maxlagerbestand(Autolager)) 

然后输出是 (9, ['Audi']) 但它应该是 (11, ['BMW])

我什至在没有功能的情况下检查了它:

MaxAutoValue = 0   
for i in Autolager:   
    if Autolager[i] > MaxAutoValue:   
        MaxAutoValue = Autolager[i]   
print (MaxAutoValue) 

此处输出正确为 11。

我上面的代码哪里出了问题?我感谢任何提示。

请您参考如下方法:

您将 return (MaxAutoValue, MaxAutoName) 放在 for 循环中,而不是在 for 循环完成之后。

Autolager = {'Audi' : 9, 'BMW' : 11, 'Mercedes' : 8} 
 
def Maxlagerbestand(Autolager):   
    MaxAutoValue = 0   
    MaxAutoName = None   
    for i in Autolager:   
        if Autolager[i] > MaxAutoValue:   
            MaxAutoValue = Autolager[i]   
            MaxAutoName = [k for k, v in Autolager.items() if v == MaxAutoValue]   
    return (MaxAutoValue, MaxAutoName)       
print (Maxlagerbestand(Autolager)) 

此外,我不确定您要使用 [k for k, v in Autolager.items() if v == MaxAutoValue] 做什么。将其替换为 i 或 [i] 不是更容易吗?