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)
但这只给了我价值,而不是名字.
您需要创建一个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列表中每个元组的索引执行最大操作.