python split同時用多種字元分割字串並去除空串 簡單兩行程式碼實現
阿新 • • 發佈:2019-01-28
程式碼使用的是python3的語法,python2只需要修改其中部分內容,同樣可以使用
兩行程式碼實現需求
- 這裡把程式碼直接給出,方便大家直接使用
>>> s = 'asdn () dne we ** feuhf' % 希望使用左右括號、空格以及*分割
>>> import re
% 核心兩句程式碼如下
>>> l = re.split('\(|\)| |\*',s) % 正則表示式切分字串,但會有空串出現,注意中間需要轉義
>>> print(l)
['asdn', '', '', '', 'dne' , 'we', '', '', '', 'feuhf']
>>> l = [item for item in filter(lambda x:x != '', l)] %使用過濾器篩掉空串得到了迭代器,再重新構造出列表
>>> print(l)
['asdn', 'dne', 'we', 'feuhf']
不用正則表示式的split方法
>>> s = 'Hello World(test)!' % 希望用空格,左右括號切分
- 實現稍微複雜的方法是用字串方法translate(replace也可以,效率會低於translate)配合split
- 即把分割字元先都轉為空格,再用空格split
>>> table = str.maketrans('()', ' ')
>>> l = s.translate(table).split(' ')
>>> print(l)
['Hello', 'World', 'test', '!']