循环中的"int"和"str"实例之间不支持">"



我必须在一个名为fav_num的字典中找到最大值:

fav_num = {
"Ian": 3.14,    
"Tobiloba": 5,
"Kaden": 10,
"Sophie": 18,
"Aarav": 17,
"Zach": 6,
"Ewen": 64,
"Nirvana": 25,
"Arjun": 3.14, 
"Olivia": 7,
}
max = 0
for value in fav_num:
if fav_num[value] > max:
max = value
print(max)

我必须使用一个循环,所以我设置max等于0,对于每个值,它将其与前一个值进行比较。它给了我这个错误:

'>' not supported between instances of 'int' and 'str'

fav_num[value]不打印密钥对应的值吗?

您需要使用不同的方法来查找字典中具有值的键。

我提供的解决方案是简单地将最大值与字典中的最大值进行比较。

fav_num = {
"Ian": 3.14,    
"Tobiloba": 5,
"Kaden": 10,
"Sophie": 18,
"Aarav": 17,
"Zach": 6,
"Ewen": 64,
"Nirvana": 25,
"Arjun": 3.14, 
"Olivia": 7,

for k, v in fav_num.items():
if v==max(fav_num.values()):
print(k)

结果

Ewen

Python可以使用索引来保持字典的顺序。

这很麻烦,但有以下方法:

  1. 找到指数

    max_ = list(fav_num.values()).index(max(fav_num.values()))
    

2。使用索引查找值

list(fav_num.keys())[max_]

结果

Ewen

方法1:遍历条目

您可以遍历字典中的每个项值对并找到最大值并返回它

for name, value in fav_num.items():
if value == max(fav_num.values()):
print(name, value)

方法二:一行

您可以在值列表中找到最大值,然后获得相应的键

list(fav_num.keys())[list(fav_num.values()).index(max(fav_num.values()))]

你可以访问这个页面了解更多关于字典函数的信息:Python字典方法
单行代码的灵感来自于这个页面:

使用max()函数和key参数获取最大值对应的键:

max(fav_num, key=fav_num.get)

如果必须使用for循环,则可以跟踪最大值和与该值对应的键:

result = None
max_value = float('-inf')
for key, value in fav_num.items():
if value > max_value:
result = key
max_value = value
print(result)

这些输出:

Ewen

相关内容

最新更新