Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 返回变量名而不是它';s值_Python - Fatal编程技术网

Python 返回变量名而不是它';s值

Python 返回变量名而不是它';s值,python,Python,我正在学习Python中的函数,我想知道如何在代码中返回变量名而不是它的值。 我知道变量b(分配给局部变量y)具有最小值,但如何在此基础上打印“b”或“y”而不是“-223”?您可以将dict作为参数传递给函数,并将变量名设置为dict键,如下所示: 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

我正在学习Python中的函数,我想知道如何在代码中返回变量名而不是它的值。
我知道变量b(分配给局部变量y)具有最小值,但如何在此基础上打印“b”或“y”而不是“-223”?

您可以将
dict
作为参数传递给函数,并将变量名设置为
dict
键,如下所示:

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))
d={'a':78*453,'b':654-877,'c':98765*785}

然后用最小值获取密钥名称,如下所示:

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))

尽管这可能不可取,但由于Python3.8,您可以在f字符串中使用新的
=
。 举个例子:

def my_function(d):
    return min(d, key=d.get)
min()。但是
min()
也可以将iterable作为参数

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
有了这个,你们将得到最小值的位置

您还可以使用更复杂的方法—存储一些元数据,如名称和数据:

data = [2, 3, 1]
print(data.index(min(data))
这里有元组列表,但要找到最小值,必须让最小值知道用于比较的值:

data = [('a', 3), ('b', 0), ('c', 1)]
不建议直接搜索变量名,以后可能会有人重构某些东西,您的代码将被破坏。最好将更多信息存储为数据。

my_function()
没有接收任何变量-它只接收数值,与保存它们的变量完全没有连接。它可以返回类似于
“first”
“second”
“third”
,以指示哪个值最小,但它不可能返回
“a”
“b”
“c”
,因为它无法知道这些名称。