【问题标题】:How does one convert a string list element such as ["+5*-5"] into [+5*-5] in Python 3如何在 Python 3 中将 ["+5*-5"] 等字符串列表元素转换为 [+5*-5]
【发布时间】:2020-03-19 07:39:15
【问题描述】:

如何转换字符串列表,例如:

string = ["+5*-5"]

变成诸如

之类的东西
string = [+5*-5]

所以我可以在数学上评估每种类型的表达式,而无需使用库、导入、评估或类似方法

我已经尝试过通常的类型转换,不幸的是这不起作用。

非常感谢

【问题讨论】:

  • 那么,你想要的结果是[-25]?
  • 你可以尝试使用ast模块
  • 为算术表达式编写解析器。如果您想避免使用库,这是一项非常重要的任务(取决于表达式的预期复杂性)。
  • @JohnColeman 同意回复:eval 是邪恶的,我确实错过了这个问题......

标签: python python-3.x list types


【解决方案1】:

一种快速安全的方法是使用numexpr,如下所示:

import numexpr

string = ["+5*-5"]
for s in string:                     # Loop over all elements in your list
    print(numexpr.evaluate(string))  # Evaluate and print result

【讨论】:

    猜你喜欢
    • 2021-10-02
    • 2012-07-06
    • 2018-06-21
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2012-01-27
    • 1970-01-01
    相关资源
    最近更新 更多