Python - 从表达式中删除不必要的括号

问题描述 投票:0回答:1

我有这样的表情:

((6)) - (5 * ((((1))) + 1) * 6) - 4

((((((3))) - 5 * (((2))) * ((5)))))

有没有一种Python式的方法可以删除一些不必要的括号,使表达式看起来像:

6-(5 *(1+1) *6) -4 and 
3-5 * (2*5)

我是Python新手,完全不确定如何做到这一点。谢谢

python formatting expression brackets parentheses
1个回答
0
投票

您可以使用

ast.parse
解析表达式,然后使用
ast.unparse
将其转换回简化的字符串。只要您尝试简化的表达式构成有效的 Python 代码,此操作就有效。

>>> ast.unparse(ast.parse("((6)) - (5 * ((((1))) + 1) * 6) - 4"))
'6 - 5 * (1 + 1) * 6 - 4'
>>> ast.unparse(ast.parse("((((((3))) - 5 * (((2))) * ((5)))))"))
'3 - 5 * 2 * 5'
© www.soinside.com 2019 - 2024. All rights reserved.