在python中分割字符的正確方法是使用split
內建函數。這將是多比任何你在Python原生實現,因爲它是一個編譯的C擴展,因爲在這一點上都內建更快:
lst = "ballooolam".split("l")
然而,在本question討論,這可能不是相當做你的期望。 split
當存在零長度的標記時,在列表中留下空字符串; I.E.如果分隔符位於字符串中的第一個/最後一個位置,或者兩個分隔符相鄰。這樣做word = 'l'.join(lst)
將返回原始值;沒有空字符串,你會得到'balooolam'
而不是'ballooolam'
。如果你想刪除這些空字符串,你可以用一個列表理解很容易地做到這一點:
def splitter(string, x):
return [token for token in string.split(x) if token]
的if token
將拒絕任何字符串,它是「falsy」,其中空字符串。如果您也想從最終名單中排除的空格,只有字符串,你可以做一個小的調整:
def splitter(string, x):
return [token for token in string.split(x) if token.strip()]
strip()
從字符串中刪除任何前導/尾隨空白。在只有空格的字符串的情況下,這將導致一個空字符串,然後將是虛假的。
爲什麼不使用string.split('l')?????或者,這是一個練習 – 2014-10-29 13:28:26
差不多它是雖然想以這種方式解決問題很好 – 2014-10-29 13:30:37
對不起,我不明白你的意思。 – 2014-10-29 13:37:44