2012-12-06 202 views

回答

2

由默認的拆分可以處理多種類型的空白,不知道如果它足夠滿足您的需求,但可以嘗試:

>>> s = "a \tb  c\t\t\td" 
>>> s.split() 
['a', 'b', 'c', 'd'] 

它確實適用於混合多個空格和製表符。

1

先進行文本替換然後再進行拆分。

例如用空格替換所有選項卡,然後在空間上拆分。

1

您可以先使用正則表達式:

​​
+1

您也可以使用're.split'直接進行分割。 – Blckknght

1

對於空格分隔符,str.split()已經做了你可能想要的。 the Python Standard Library

str。 分裂([ [,maxsplit]])

如果月未指定被或None,一個不同的分割算法被應用於:連續空白的運行被認爲是一個單獨的分隔符,如果字符串具有前導或尾隨空白,結果將在開始或結束時不包含空字符串。因此,將空字符串或只包含空格的字符串拆分爲無分隔符將返回[]。例如,' 1 2 3 '.split()返回['1', '2', '3'],' 1 2 3 '.split(None, 1)返回['1', '2 3 ']

2

我與由不同的空格字符分隔的一些字符串相同的問題,並且如圖中的Regular Expressions庫說明書中使用\ S

\ s匹配任何空格字符,這相當於set [\ t \ n \ r \ f \ v]。

,你將需要進口重新作爲正則表達式處理程序:

import re 
line = "something separated\t by \t\t\t different \t things" 
workstr = re.sub('\s+','\t',line) 

所以,任何空白或分離器(\s)重複一次或多次(+)轉化爲一個單一的列表( ('\ t')

workstr = "something`\t`separated`\t`by`\t`different`\t`things" 
newline = workstr.split('\t') 
newline = ['something','separated','by','different','things'] 
相關問題