我有這樣一個字符串列表:如何迭代字符串列表並進行模式匹配?
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