所以我想从x
,y
,z
这3个变量中获取最大值。
x = 1
y = 2
z = 3
max(x, y, z) # returns 3 but I want "z"
但是,这将返回z
的值,即3
。如何获取变量的名称,例如改为"z"
?
谢谢
答案 0 :(得分:3)
制作字典,然后使用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'
>>>
答案 1 :(得分:2)
您可以将它们放入字典,并通过键使用max:
dict1 = {'x':1, 'y':2, 'z':3}
max(dict1, key=dict1.get)
但是请仔细考虑一下。如果您多次具有相同的val,并且存在其他边缘情况,该怎么办。
答案 2 :(得分:1)
使用字典,并通过按键功能获得最多的项目。
d = {'x':1, 'y':2, 'z':3}
max(d.items(), key=lambda i: i[1])
答案 3 :(得分:-1)
完全不建议这样做,但是您可以使用globals()
词典来跟踪所有内置变量或由用户定义的变量:
x = 1
y = 2
z = 3
variables = {k: v for k, v in globals().items() if isinstance(v, int)}
max_value = max(variables.values())
res = next(k for k, v in variables.items() if v == max_value)
结果为:
print(res) # z
答案 4 :(得分:-2)
创建一个数字列表,然后在列表周围键入max()。