2014-03-27 45 views
0

我有一個字符串,帶有這個模式:在[' ', '.', "#"]加上空格的字符的重複。在這些字符中用分隔符分割字符串的字符

例如:# . #

我想基於空間分隔符拆分此字符串(獲得['#', '.', ' ', '#']但問題是,空間字符本身的一個,所以split(" ")不起作用。

我怎樣才能做到這一點?

+1

'# 。 #'不符合你的定義;最後'#'後面沒有空格 –

回答

4

有沒有必要在這裏使用的內涵 - 你可以只使用一個步進片:

>>> text = "# . #" 
>>> text[::2] 
'#. #' 
>>> list(text[::2]) 
['#', '.', ' ', '#'] 
+2

只要你沒有三個**空格,就像一個魅力一樣。 – Torxed

+1

爲了避免混淆,影響內建並促進良好實踐 - 我建議將'str'重命名爲'text'或其他... –

+1

@Torxed:Erm,我用__has__三個空格。我認爲你的意思是_「只要輸入符合規範就有效」_ – Eric

0

如果字符串總是有(char,space,char,space,...)序列,你可以這樣做:

new_list = [old_string[x] for x in range(0,len(old_string),2)]

>>> old_string = '# # # . #' 
#Run code above 
>>> print new_string 
['#','#','#','.',' ','#'] 
+0

他提到他有個''序列。 – Torxed

+0

@alireza,我更新了我的答案,使其更簡單,並且有一行' – sshashank124

0
result = [] 
for c in yourString: 
    if c == ' ' and result[-1] == ' ': 
     continue 
    result.append(c) 
0

假設每個字之間只有一個空格分隔符,下面將工作以及

str = "# . #." 
result = [] 
for index,c in enumerate(str): 
    if index%2==0: 
     result.append(c)