如何让 max() 返回变量名而不是 Python 中的值?

oce*_*dye 3 python

所以我想从 3 个变量中获得最大值,x, y, z。

x = 1
y = 2
z = 3
max(x, y, z)  # returns 3 but I want "z"
Run Code Online (Sandbox Code Playgroud)

但是,这将返回zie的值3。我如何获得变量的名称,例如"z"?

谢谢

dfu*_*ako 7

您可以将它们放入字典中并使用 max 和键:

dict1 = {'x':1, 'y':2, 'z':3}
max(dict1, key=dict1.get)
Run Code Online (Sandbox Code Playgroud)

但请仔细考虑一下这样做的后果。如果多次使用相同的 val 以及其他边缘情况怎么办?


Bla*_*der 6

制作一本字典,然后使用max. 也适用于min. 它将以字符串的形式返回变量名。

>>> x = 1
>>> y = 2
>>> z = 3
>>> var = {x:"x",y:"y",z:"z"}
>>> max(var)
3
>>> var.get(max(var))
'z'
>>> var.get(min(var))
'x'
>>>
Run Code Online (Sandbox Code Playgroud)