如何通过多个分隔符拆分字符串并存储在列表中?

时间:2014-11-05 05:31:16

标签: python

有没有办法用多个分隔符分割字符串?

我有一个像"(I (J (K L) (M N)) (O P))"这样的字符串,我希望将它存储到这样的列表中:

['(', 'I', '(', 'J', '(', 'K', 'L', ')', '(', 'M', 'N', ')', ')', '(', 'O', 'P', ')', ')']

我该怎么做?

6 个答案:

答案 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', ')', ')']