access 删除字符串中的字符_一日一技:在字符串中批量替换单个字符

dc3ad646aabed0d1d9a400a32889bd6c.png

在我们使用爬虫爬取下来的数据中可能混有很多不需要的字符,例如:

address = '浙江省杭州市\r\n滨江区xx小区7#门'

我现在需要移除里面的 \r\n、把 #替换为 。你可能会这样写代码:

clean_address = address.replace('\r', '')

clean_address = address.replace('\n', '')

clean_address = address.replace('#', '号')

这样的写法,处理几个字符还行,但如果要处理几百个特殊符号,那就很困难了。

所以当我们要处理很多的字符串替换时,可能会有一个配置文件来记录替换关系:

need_replace = {'\n': '', '\r': '', '#': '号'}

在这种情况下,我们可以使用字符串的 translate方法来实现替换:

address = '浙江省杭州市\r\n滨江区xx小区7#门'

need_replace = {'\n': '', '\r': '', '#': '号'}

table = str.maketrans(need_replace)

clean_address = address.translate(table)

运行效果如下图所示:

4415dfefb4c2d8bc1d0454ee89487002.png

使用这种方式,可以让代码看起来更加简洁,也更方便配置。

不过当需要替换的字符串比较少时, translate的效率比 replace低。并且 translate只能实现多个单字符的替换,不能替换多字符的字符串,例如:

address = '浙江省杭州市

滨江区'

如果要把

整体替换为空,就不能使用 translate方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值