【问题标题】:Parsing a list and create expressions解析列表并创建表达式
【发布时间】:2018-02-07 21:45:49
【问题描述】:

我有一个字符串列表:

A = ['a','b']

我想解析这个列表并编写以下表达式:

a = x**2
b = a*x

其中xsympy 符号,稍后我会将这些表达式用于其他操作,如微分等。问题是ab 是列表中的字符串。我无法将它们用作表达式!我该怎么做?

【问题讨论】:

    标签: python sympy


    【解决方案1】:

    一般来说,你不会。尝试设置动态变量名称通常是设计不佳的标志。如果您确实需要这些符号来向外界表示事物,请尝试保留标签和值。例如,字典可以为你做这样的事情。

    symbol = { 'a': x**2; 'b': x**3 }
    

    您可以从那里添加符号、更改值等。例如,

    symbol = { 'a': x**2 }
    symbol['b'] = symbol['a'] * x
    

    当然,您可以构建一个表达式字符串并在内容上使用eval,但这通常很危险且难以维护。

    更广泛的可能性是操作字符串值并编写您想要运行的 Python 脚本。将其写入文件,然后使用ossubprocess 命令执行。

    这会让你感动吗?

    【讨论】:

    • 我尝试使用字典。但是,由于ab(字典符号的键)仍然是字符串,您最终将如何在 sympy 区分中使用它?
    • 你能通过使用值列表/数组来完成工作吗?您可以挖掘主程序的堆栈对象并添加变量,但这比eval 更敏感。
    • 您的回答很有帮助。我想我可以使用字典使其工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 2010-10-05
    • 1970-01-01
    相关资源
    最近更新 更多