我有幾個值的最大值,這樣找到變量/鍵:Python中,基於
value_a = 5
value_b = 10
value_c = 20
我想找到的最大值和打印值的名稱。 通常我會用
val = [value_a, value_b, value_c]
print max (val)
但這只是給了我的價值,而不是名字。
我有幾個值的最大值,這樣找到變量/鍵:Python中,基於
value_a = 5
value_b = 10
value_c = 20
我想找到的最大值和打印值的名稱。 通常我會用
val = [value_a, value_b, value_c]
print max (val)
但這只是給了我的價值,而不是名字。
而不是定義變量,您需要創建一個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
執行的最大操作。
爲這些值創建一個字典,然後在print語句中調用該函數。
values = {
'value_1': 10,
'value_2': 30,
'value_3': 20
}
print (max(values, key=lambda i: values[i]))
輸出:
value_2
這個怎麼樣。 :)
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'
您需要使用字典或命名元組。使用字典的示例如下
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'
>>>
您正在混合數據和代碼,請改用字典。 – RemcoGerlich
可能相關:http://stackoverflow.com/questions/592746/how-can-you-print-a-variable-name-in-python – Lafexlos
不短,但你可以使用'if ... elif' – depperm