我有以下字符串:
"{f[{-1 + x, y}]; f[{1 + x, y}]; f[{x, 1 + y}]}"
我想将其转换为表达式。直接应用
ToExpression
只给出最后一个,即 {f[{x, 1 + y}]}
。如何获取整个列表? 最佳答案
您可以查看 ToExpression
的文档以找到它的第三个参数,然后使用
ToExpression["{f[{-1 + x, y}]; f[{1 + x, y}]; f[{x, 1 + y}]}", InputForm, Hold]
以防止评估。
几个转换表达式或提取部分的函数(
Extract
、 Level
等)可以选择将提取的部分包装在任意函数中。一个常见的用途是将它们包装在 Hold
中,以防止评估。编辑: 请注意,您的表达式不是列表。这是一个
CompoundExpression
。您可能正在寻找ToExpression["{f[{-1 + x, y}]; f[{1 + x, y}]; f[{x, 1 + y}]}", InputForm, Hold] /. CompoundExpression -> List // ReleaseHold
你能解释一下你想要实现的目标以及你从哪里得到字符串的吗?
关于wolfram-mathematica - 使用 ToExpression[] 将字符串转换为表达式时,如何防止计算结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8689697/