避免在循环Python中使用eval函数

问题描述 投票:-2回答:1

我有一个特定的函数(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])

提前致谢。

python eval
1个回答
1
投票

首先,将列表命名为“列表”是一个坏主意,因为该名称已在Python中使用。其次,只需更新列表理解:

my_list = [1, 2, 3, 4]

CompleteNames = [Quash(str(i)) for i in my_list]
© www.soinside.com 2019 - 2024. All rights reserved.