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实现在目录中查找指定文件的方法
Nov 11 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
Python模拟随机游走图形效果示例
Feb 06 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 Python
浅谈python 中类属性共享的问题
Jul 02 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
tensorflow 分类损失函数使用小记
Feb 18 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
python OpenCV学习笔记
Mar 31 Python
Python使用random模块实现掷骰子游戏的示例代码
Apr 29 Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 Python
Python 数据可视化神器Pyecharts绘制图像练习
Feb 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
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
js自定义input文件上传样式
2018/10/26 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
vue之延时刷新实例
2019/11/14 Javascript
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
Python通过解析网页实现看报程序的方法
2014/08/04 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
Python实现手势识别
2020/10/21 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
导游的职业规划书范文
2013/12/27 职场文书
毕业自我鉴定书
2014/03/24 职场文书
财务内勤岗位职责
2014/04/17 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
接收函格式
2015/01/30 职场文书
2015年质检工作总结
2015/05/04 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js