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

时间:2016-11-17 14:00:29

标签: python python-2.7 list dictionary

我有几个值,如下:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/nz/lib64"
export PATH="$PATH:/usr/local/nz/bin64"
export NETEZZA="/usr/local/nz"
export NZ_ODBC_INI_PATH="/etc"

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

value_a = 5
value_b = 10
value_c = 20

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

4 个答案:

答案 0 :(得分: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 。例如:

max()

在此处,dict将返回key中具有最大值的元组。

如果您不关心最大值,并且只想让>>> max(my_dict, key=my_dict.get) 'value_2' 持有它,您可以这样做:

my_dict.items()

<强>解释

[(key, value), ..]将以[('value_1', 10), ('value_3', 20), ('value_2', 30)] 格式返回元组列表。在我给出的例子中,它将保持:

key=itemgetter(1)
声明中的

max()将告诉1对列表中每个元组的索引//*[contains(@id,'price-including')] 执行最大操作。

答案 1 :(得分:1)

这个怎么样? :)

In [1]: the_dict = {'value_a':5, 'value_b':10, 'value_c':20}

In [2]: max(the_dict, key=the_dict.get)

输出:

Out[2]: 'value_c'

答案 2 :(得分:1)

您需要使用字典或命名元组。使用字典的示例如下

Python 3.4.3 (default, Sep 14 2016, 12:36:27) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> vdict={'value_a':5,'value_b':10,'value_c':20}
>>> max(vdict, key=vdict.get)
'value_c'
>>> 

答案 3 :(得分:0)

为值创建一个字典,然后在print语句中调用此函数。

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

print (max(values, key=lambda i: values[i]))

输出:

value_2