从列表中的元素中删除括号

时间:2014-12-13 19:37:14

标签: python

我是python的初学者,我没有做正则表达式。我试图摆脱'('和')'来自列表中的元素。我尝试了以下但它不起作用。

def trial(st):
    a=st.split()
    ls=[]
    for item in a:
        ls.append(item.replace('(',''))
    return a

>>>trial("(   +(       + 8        7)(    + 2 5     ))")   
['(', '+(', '+', '8', '7)(', '+', '2', '5', '))']

我想获得以下内容:

>>>trial("(   +(       + 8        7)(    + 2 5     ))")   
['+', '+', '8', '7', '+', '2', '5']

2 个答案:

答案 0 :(得分:3)

为什么不先删除括号?

a = st.replace("("," ").replace(")"," ").split()

答案 1 :(得分:0)

正则表达式非常有用:

>>> import re
>>> s = "(   +(       + 8        7)(    + 2 5     ))"
>>> re.findall("[+0-9]+",s)
['+', '+', '8', '7', '+', '2', '5']

如果你没有学过正则表达式:

>>> [x for x in s if x=='+' or x.isdigit()]
['+', '+', '8', '7', '+', '2', '5']

str.isdigit()将检查字符串是否为数字