Python 如何在列表中将变量的名称提取为字符串?

Python 如何在列表中将变量的名称提取为字符串?,python,string,list,dictionary,list-comprehension,Python,String,List,Dictionary,List Comprehension,我试图将变量的名称提取为字符串。我定义了两个变量CurrentField和PreviousField,并希望将这些名称提取为字符串,以便在代码中的其他地方使用 CurrentField = ['One', 'Two'] PreviousField = ['One0', 'Two0'] def Updatedict(varname): callers_local_vars = inspect.currentframe().f_back.f_locals.items() strin

我试图将变量的名称提取为字符串。我定义了两个变量CurrentField和PreviousField,并希望将这些名称提取为字符串,以便在代码中的其他地方使用

CurrentField = ['One', 'Two']
PreviousField = ['One0', 'Two0']

def Updatedict(varname):
    callers_local_vars = inspect.currentframe().f_back.f_locals.items()
    stringvar = [k for k, v in callers_local_vars if v is varname][0]
    return stringvar

listofvars = [CurrentField, PreviousField]

ParameterDict = [Updatedict(keyname) for keyname in listofvars]

ParameterDict
我得到的只是一个列表,上面写着['keyname','keyname',],我要找的是['CurrentField','PreviousField']

如何获得所需的输出


先谢谢你

问题在于您的循环,请根据 :


作为旁注,函数应该是小写的,变量名也是如此,如果您使用的是早期版本的python,那么大写的是python类,因为上述代码适用于python 3.6以后的版本。请使用以下代码:

my_dict = {}
i = 0
for var in listofvars:
    my_dict.update({"var_%s" %i : Updatedict(var)})
    i += 1

my_dict

你会发现这里很有用。底线是,对于大多数类型的变量,您实际上无法通过编程方式获取变量的名称。通常,当您看到有人试图查找变量名时,解决方案几乎总是使用字典。当我使用您的代码时,错误消息总是出现无效语法。我正在使用python 3.5.5。抱歉,我之前没有提到这一点。我在代码的这一部分中得到了{fvar_{I}的引号和冒号之间的语法错误:UpdatedictvarChange it yo only I With Quotes python 3.6中没有引入f字符串吗?
my_dict = {}
i = 0
for var in listofvars:
    my_dict.update({"var_%s" %i : Updatedict(var)})
    i += 1

my_dict