【发布时间】:2017-03-29 18:40:45
【问题描述】:
myList = ['100', 'sin(x)', '0', '1']
我从一个文本文件中读取这些字符串。我现在想从该字符串执行函数调用 sin(x) -- 我希望这是对任何函数表达式的字符串的一般解释。
我尝试了以下但没有成功。
myList[1].replace("'", "")
我想我要问的是如何从列表中提取字符串并使用它的“原始文本”。
最终目标是得到这个函数,这里myList[1]应该转向sin(x)
from math import sin
def f(x):
return myList[1]
因此 f(x) 将从此列表中给出 sin(x) 的计算值。
【问题讨论】:
-
eval,但请确保您确实需要解决这个问题。eval被滥用会很危险。这让我觉得是一个 XY 问题。 -
您对我的回答的评论更适合这里。这仍然是一个狭窄的范围。您是否正在尝试编写某种表达式评估器?整体项目是什么?
-
@Prune:在他之前的帖子中,有一个带有任务列表“N function_string a b”的文本文件,目标是在
[a,b]区间内对每个任务进行数值积分,并在@中细分987654329@ 子间隔。 -
谢谢;在 SO 中,每个问题都应该独立存在,或者至少包含指向 SO 上下文的链接。
-
另请参阅stackoverflow.com/a/5936822/3088138、stackoverflow.com/a/25437733/3088138 以及围绕这些的其他答案。
标签: python list python-3.x math