Python,根据最大值查找变量/键

Shi*_*ifu 1 python dictionary list python-2.7

我有几个值,像这样:

value_a = 5
value_b = 10
value_c = 20
Run Code Online (Sandbox Code Playgroud)

我想找到最大的值并打印值的NAME.通常我会用

val = [value_a, value_b, value_c]
print max (val)
Run Code Online (Sandbox Code Playgroud)

但这只给了我价值,而不是名字.

Moi*_*dri 7

您需要创建一个dict用名称来映射名称,而不是定义变量.然后,你需要打电话max()operator.itemgetter()作为key它.例如:

my_dict = {
   'value_1': 10,
   'value_2': 30,
   'value_3': 20
}

from operator import itemgetter

var_text, value = max(my_dict.items(), key=itemgetter(1))   
# Value of:
# `var_text`: "value_2"
# `value`: 30
Run Code Online (Sandbox Code Playgroud)

在这里,max()将返回具有最大值的元组dict.

如果您不关心最大值,并且您只想key持有它,您可以:

>>> max(my_dict, key=my_dict.get)
'value_2'
Run Code Online (Sandbox Code Playgroud)

说明:

my_dict.items()将以格式返回元组列表[(key, value), ..].在我给出的例子中,它将持有:

[('value_1', 10), ('value_3', 20), ('value_2', 30)]
Run Code Online (Sandbox Code Playgroud)

key=itemgetter(1)在声明中将告诉max()1列表中每个元组的索引执行最大操作.