我是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']
答案 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()将检查字符串是否为数字