我有这样一个字符串列表:如何迭代字符串列表并进行模式匹配?
lst= ['(', 'A', '(', 'B', '(', 'C', 'D', ')', '(', 'E', 'F', ')', ')', '(', 'G', 'H', ')', ')']
连接在一起,它看起来像这样:
(A(B(CD)(EF))(GH))
我想横越元素和存储值列表分为两个列表如下:['A','B','G']
['B', 'C', 'E']
我试图做到这一点:
l1=[]
for i in range(len(lst)):
if lst[i] == '(':
l1.append(lst[i+1])
如何中断计算,使其计算开合数的缺省数量,并在开头括号获得其右括号时,然后在下一个开口括号后添加元素,以得到结果:['A','B','G']
['B', 'C', 'E']
?
我不明白你的例子。不明显的是,这些机制是什么导致A,B,G在一个组中,而B,C,E在另一个组中。例如,为什么F不通和B出现两次?准确的规则是什么? – 2014-11-05 07:44:32
@John Zwinck我想考虑它:A有2个内部列表(B(CD)(EF))和(GH),所以我想提取A和这两个内部列表的第一个元素。同样,B有两个内部列表(CD)和(EF),所以我想提取B,C,E。 – 2014-11-05 07:47:55
你应该使用堆栈来实现它 – 2014-11-05 08:34:45