避免在循环中使用 eval 函数 Python
Avoiding using the eval function in a loop Python
我有一个特定的函数 (Quash),我想用它来 运行 处理变量列表,例如名为 'list' 的列表。有没有一种方法可以在不使用 eval 的情况下 运行 遍历数字列表?
注意:为了简单起见,我将 QUash 函数放在这里。真正的功能更复杂,有很多字符串。
除了在此循环中使用 eval 函数来提取值之外,还有其他方法吗?
list = [1,2,3,4]
def stringfunction(Var):
AnalysisVar = "Quash.(" + str(Var) + ")"
return AnalysisVar
CompleteNames = [stringfunction(i) for element in list]
for i in CompleteNames:
eval("%s" %CompleteNames[i])
提前致谢。
首先,将您的列表命名为 "list" 是个坏主意,因为该名称已在 Python 中使用。其次,只需更新您的列表理解:
my_list = [1, 2, 3, 4]
CompleteNames = [Quash(str(i)) for i in my_list]
我有一个特定的函数 (Quash),我想用它来 运行 处理变量列表,例如名为 'list' 的列表。有没有一种方法可以在不使用 eval 的情况下 运行 遍历数字列表?
注意:为了简单起见,我将 QUash 函数放在这里。真正的功能更复杂,有很多字符串。
除了在此循环中使用 eval 函数来提取值之外,还有其他方法吗?
list = [1,2,3,4]
def stringfunction(Var):
AnalysisVar = "Quash.(" + str(Var) + ")"
return AnalysisVar
CompleteNames = [stringfunction(i) for element in list]
for i in CompleteNames:
eval("%s" %CompleteNames[i])
提前致谢。
首先,将您的列表命名为 "list" 是个坏主意,因为该名称已在 Python 中使用。其次,只需更新您的列表理解:
my_list = [1, 2, 3, 4]
CompleteNames = [Quash(str(i)) for i in my_list]