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', '!'] 
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值