Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get max() to return variable names instead of values in Python?

Tags:

python

So I would like to get the maximum value from 3 variables, x,y,z.

x = 1
y = 2
z = 3
max(x, y, z)  # returns 3 but I want "z"

However this returns the value of z i.e 3. How do I get the name of the variable e.g. "z" instead?

Thanks

like image 995
oceandye Avatar asked Dec 18 '22 21:12

oceandye


2 Answers

Make a dictionary and then use max. Also works with min. It will return you the variable name in the form of string.

>>> 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'
>>>
like image 116
Black Thunder Avatar answered Apr 27 '23 22:04

Black Thunder


You could put them into a dictionary and use max with a key:

dict1 = {'x':1, 'y':2, 'z':3}
max(dict1, key=dict1.get)

But think through the ramifications of this. What if you have the same val multiple times, and other edge cases.

like image 22
dfundako Avatar answered Apr 28 '23 00:04

dfundako