【发布时间】:2014-11-27 17:47:03
【问题描述】:
我有这个字符串:
'(+ (- 5 4) (- 2 1))'
我希望它把它转换成一个数组/列表,这样字符串的输出就会是这样的:
['+', ['-', 5, 4], ['-', 2, 1]]
括号将是数组内的一个新数组作为元素。这对我来说有点棘手,因为我是新手。提前致谢!
编辑:
如果我尝试
'(+ 1 (+ 2 (+ 4 5)))'
输出应该是
['+', 1, ['+', 2, ['+', 4, 5]]]
【问题讨论】:
-
你的代码在哪里,它到底有什么问题?
-
是否保证数组中的每个对象都是单个字符?
-
我现在的代码并没有我说的那么有用。
-
eval(re.sub(r"([+\-*/])",r"'\1'",'(+ (- 5 4) (- 2 1))').replace(" ",","))这是一个非常肮脏的单行解决方案。 -
@MihirSinghal ,是的,数组中的每个对象都是一个字符