避免在循环中使用 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]