def my_function(x, y, z):
mini = min(x,y,z)
return mini
a = 78*453
b = 654-877
c = 98765*785
print(my_function(a,b,c))
我正在学习Python中的函数,并且想知道如何在此代码中返回变量名而不是它的值。 我知道变量b(分配给局部变量y)具有最小值,但是如何基于该值打印“ b”或“ y”而不是“ -223”?
答案 0 :(得分:0)
您可以将dict
作为参数传递给函数,并将变量名设置为dict
键,如下所示:
d={'a': 78*453, 'b': 654-877, 'c': 98765*785}
,然后获得带有最小值的键名,如下所示:
def my_function(d):
return min(d, key=d.get)
答案 1 :(得分:0)
尽管可能不建议这样做,但是从python 3.8开始,您可以在f字符串中使用新的=
。
举个例子:
def return_value(a):
return a
def return_variable_name_with_value(a):
return f'{a=}'
print(return_value(5))
# Output:
# 5
print(return_variable_name_with_value(5))
# Output:
# a=5
答案 2 :(得分:0)
min()
将找到最小值,因此它不在乎参数名称。但是min()
也可以将Iter作为参数。
data = [2, 3, 1]
print(data.index(min(data))
这样您将获得最小值的位置。
您还可以使用更复杂的方法-存储一些元数据,例如带有数据的名称:
data = [('a', 3), ('b', 0), ('c', 1)]
这里有元组列表,但是要找到最小值,您必须让min知道用于比较的值:
minValue = min(list(map(lambda x: x[1], data)))
minPosition = list(map(lambda x: x[1], data)).index(minValue)
print(data[minPosition]) # prints ('b', 0)
不建议直接搜索变量名,以后有人可能会重构某些内容,并且您的代码将被破坏。最好将更多信息存储为数据。