有没有办法用多个分隔符分割字符串?
我有一个像"(I (J (K L) (M N)) (O P))"
这样的字符串,我希望将它存储到这样的列表中:
['(', 'I', '(', 'J', '(', 'K', 'L', ')', '(', 'M', 'N', ')', ')', '(', 'O', 'P', ')', ')']
我该怎么做?
答案 0 :(得分:3)
s = "(I (J (K L) (M N)) (O P))"
list(s.replace(" ", ""))
答案 1 :(得分:0)
你的意思是这样吗?
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
答案 2 :(得分:0)
您可以使用list(str)
,但必须先删除空格:
>>> st="(I (J (K L) (M N)) (O P))"
>>> list(st.replace(' ',''))
['(', 'I', '(', 'J', '(', 'K', 'L', ')', '(', 'M', 'N', ')', ')', '(', 'O', 'P', ')', ')']
答案 3 :(得分:0)
您可以使用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', ')', ')']
答案 4 :(得分:0)
使用正则表达式: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', ')', ')']
答案 5 :(得分:0)
>>> 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', ')', ')']