有没有办法通过多个分隔符来分割字符串?如何用多个分隔符分割字符串并存储在列表中?
我有这样的字符串:"(I (J (K L) (M N)) (O P))"
,我想将它存储到像这样的列表:
['(', 'I', '(', 'J', '(', 'K', 'L', ')', '(', 'M', 'N', ')', ')', '(', 'O', 'P', ')', ')']
我怎么能这样做?
有没有办法通过多个分隔符来分割字符串?如何用多个分隔符分割字符串并存储在列表中?
我有这样的字符串:"(I (J (K L) (M N)) (O P))"
,我想将它存储到像这样的列表:
['(', 'I', '(', 'J', '(', 'K', 'L', ')', '(', 'M', 'N', ')', ')', '(', 'O', 'P', ')', ')']
我怎么能这样做?
使用正则表达式:re.findall
import re
s = "(I (J (K L) (M N)) (O P))"
re.findall('[\w\(\)]',s)
输出:
['(', 'I', '(', 'J', '(', 'K', 'L', ')', '(', 'M', 'N', ')', ')', '(', 'O', 'P', ')', ')']
s = "(I (J (K L) (M N)) (O P))"
list(s.replace(" ", ""))
您的意思是这样的?
s = "(I (J (K L) (M N)) (O P))"
print [i for i in s if i != " "]
或
mylist = []
for i in s:
if i != " ":
mylist.append(i)
print mylist
您可以使用list(str)
,但你必须先删除空格:
>>> st="(I (J (K L) (M N)) (O P))"
>>> list(st.replace(' ',''))
['(', 'I', '(', 'J', '(', 'K', 'L', ')', '(', 'M', 'N', ')', ')', '(', 'O', 'P', ')', ')']
你可以使用list comprehension。
>>> s = "(I (J (K L) (M N)) (O P))"
>>> [i for i in s if i != ' ']
['(', 'I', '(', 'J', '(', 'K', 'L', ')', '(', 'M', 'N', ')', ')', '(', 'O', 'P', ')', ')']
>>> string = '(I (J (K L) (M N)) (O P))'
>>> string
'(I (J (K L) (M N)) (O P))'
>>> lst = []
>>> for x in string:
... if x != ' ':
... if lst.append(x)
['(', 'I', '(', 'J', '(', 'K', 'L', ')', '(', 'M', 'N', ')', ')', '(', 'O', 'P', ')', ')']