2012-12-13 47 views

回答

4

你的意思output = ['John', '16', 'random_word', '1', '6', ...]?你可以像output = inpt.split(', ')那樣分割它。這也消除了,之後的空白。

+0

這似乎正是我需要的,謝謝!考慮到我的字符串將始終格式化,以便空格僅在逗號後出現。 –

+0

太棒了! :)歡迎 – nickanor

0

如果我理解正確的話,簡單地做:

output = input.split(',') 

你可能需要事後調整每個生成的字符串,因爲split不關心空格。

問候, 馬特

+0

謝謝!我沒有解釋清楚,但你說得對。這就是我想要的,現在只是去除這些空間。 –

6

您可以使用input.split(','),但正如其他人所指出的,您必須處理前導空格和尾隨空格。可能的解決方案是:

  • 沒有正則表達式:

    In [1]: s = 'John, 16, random_word, 1, 6, ...' 
    
    In [2]: [subs.strip() for subs in s.split(',')] 
    Out[2]: ['John', '16', 'random_word', '1', '6', '...'] 
    

    我在這裏所做的是使用一個list comprehension,在我創建的元素通過調用strip方法從字符串由從s.split(',')列表在他們。 這相當於

    strings = [] 
    for subs in s.split(','): 
        strings.append(subs) 
    print(subs) 
    
  • regex

    In [3]: import re 
    
    In [4]: re.split(r',\s*', s) 
    Out[4]: ['John', '16', 'random_word', '1', '6', '...'] 
    

此外,儘量不要用input變量名,因爲你這樣的陰影the built-in function

你也可以split', ',但你必須絕對確保總有逗號後的空間(想想換行符等)

+0

你能否詳細解釋一下「沒有正則表達式」的步驟?我似乎無法複製你所做的。請注意,我一直在學習編程一週左右。謝謝你! –

+0

@SlobodanStevic我試圖概述過程,隨時提出更具體的問題。請注意,我展示的是來自交互式'ipython'會話,如果您嘗試將其放入腳本中,除非您明確地「打印」某些東西,否則不會看到任何輸出。 –

+0

非常感謝,我做到了! –

0

使用分割功能。

output = input.split(', ')