1. 程式人生 > >python split同時用多種字元分割字串並去除空串 簡單兩行程式碼實現

python split同時用多種字元分割字串並去除空串 簡單兩行程式碼實現

程式碼使用的是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', '!']