python删除字符串中指定字符的方法


Posted in Python onAugust 13, 2018

最近开始学机器学习,学习分析垃圾邮件,其中有一部分是要求去除一段字符中的标点符号,查了一下,网上的大多很复杂例如这样

import re 
temp = "司法局让我和户 1 5. 8 0. !!?? 客户维护户外" 
temp = temp.decode("utf8") 
string = re.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*()]+".decode("utf8"), "".decode("utf8"),temp) 
print string

或者是这样的

'''引入string模块'''
import string
'''使用标点符号常量'''
string.punctuation
text = "*/@》--【】--12()测试*()"

'''去除字符串中所有的字符,可增加自定义字符'''
def strclear(text,newsign=''):
  import string # 引入string模块
  signtext = string.punctuation + newsign # 引入英文符号常量,可附加自定义字符,默认为空
  signrepl = '@'*len(signtext) # 引入符号列表长度的替换字符
  signtable = str.maketrans(signtext,signrepl) # 生成替换字符表
  return text.translate(signtable).replace('@','') # 最后将替换字符替换为空即可

strclear(text,'》【】')

我一开始用的后面的这个,着实是有点暴力,于是找了查了一下原文档,发现python3中完全有更好的方法去实现这样的功能(似乎是新更新的?不太清楚,我的是python最新版本3.6.6)

和上面的方法一样是利用的是str的translate()和maketrans()

translate()自然不用说这里的重点是maketrans(),先放上官方的文档

static str.maketrans(x[, y[, z]])
This static method returns a translation table usable for str.translate().

If there is only one argument, 
it must be a dictionary mapping Unicode ordinals (integers) or characters (strings of length 1) to Unicode ordinals, 
strings (of arbitrary lengths) or None. Character keys will then be converted to ordinals.

If there are two arguments, 
they must be strings of equal length, 
and in the resulting dictionary, 
each character in x will be mapped to the character at the same position in y. 
If there is a third argument, it must be a string, whose characters will be mapped to None in the result.

可以看出maketrans是可以放三个参数的(以前一直以为只有两个....)

前两个参数是需要一一对应进行替换,需要字符串长度相同

第三个参数是直接替换为None

这里就直接上代码了

import string

i = 'Hello, how are you!'

i.translate(str.maketrans('', '', string.punctuation))
>>>'Hello how are you'

 i = 'hello world i am li'
 i.translate(str.maketrans('','','l'))

>>>'heo word i am i'

这里的string.punctuation 是python内置的标点符号的合集

既然看到了就总结下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中比较特别的除法运算和幂运算介绍
Apr 05 Python
讲解Python中的递归函数
Apr 27 Python
python实现将pvr格式转换成pvr.ccz的方法
Apr 28 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
python numpy实现文件存取的示例代码
May 26 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
Mar 30 Python
python Zmail模块简介与使用示例
Dec 19 Python
七个Python必备的GUI库
Apr 27 Python
Python函数式编程中itertools模块详解
Sep 15 Python
python实现局部图像放大
Nov 17 Python
python数字图像处理之图像自动阈值分割示例
Jun 28 Python
Django contenttypes 框架详解(小结)
Aug 13 #Python
Python中的Numpy矩阵操作
Aug 12 #Python
浅谈python之新式类
Aug 12 #Python
详解Django中类视图使用装饰器的方式
Aug 12 #Python
python中pip的安装与使用教程
Aug 10 #Python
python3判断url链接是否为404的方法
Aug 10 #Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 #Python
You might like
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
WAF的正确bypass
2017/01/05 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
jquery 新浪网易的评论块制作
2010/07/01 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
Python 自动补全(vim)
2014/11/30 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
pandas删除指定行详解
2019/04/04 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
一道Delphi上机题
2012/06/04 面试题
长城导游词
2015/01/30 职场文书
董事长年会致辞
2015/07/29 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
英镑符号 £
2022/02/17 杂记
Docker安装MySql8并远程访问的实现
2022/07/07 Servers