我想从具有函数和 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] 不是更容易吗?
