python3解决split结果包含空字符串问题

Python3 解决split结果包含空字符串的四种方法

先看例子:

In [1]: s = "abc,,,fefdaf,,,123fad,,fsdfa,,,"
In [2]: s.split(',')
Out[2]: ['abc', '', '', 'fefdaf', '', '', '123fad', '', 'fsdfa', '', '', '']

方法一:列表推导式

[x for x in re.split(',|:', s) if x]

方法二:调用filter库函数

list(filter(None, s.split(',')))

方法三:使用正则表达式findall

re.findall('[A-Za-z0-9]+', s)

方法四:字符串替换

import string
In [1]: s = "abc,,,fefdaf,,,123fad,,fsdfa,,,"
In [2]: table = str.maketrans(',', ' ')
In [3]: s.translate(table).split()
Out[3]: ['abc', 'fefdaf', '123fad', 'fsdfa']
  • Note:可以用此方法实现很多功能,例如:

    • 分割字符串时希望将括号去除
    import string 
    In [4]: s = "This is a (test)!"
    In [5]: table = str.maketrans('()', ' ')
    In [6]: s.translate(table).split()
    Out[6]: ['This', 'is', 'a', 'test', '!'] 
    

你可能感兴趣的:(python处理文件)