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代码检查工具pylint 让你的python更规范
Sep 05 Python
Phantomjs抓取渲染JS后的网页(Python代码)
May 13 Python
Windows下Python使用Pandas模块操作Excel文件的教程
May 31 Python
Django日志模块logging的配置详解
Feb 14 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
Oct 30 Python
python正向最大匹配分词和逆向最大匹配分词的实例
Nov 14 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
Windows系统下pycharm中的pip换源
Feb 23 Python
什么是python的函数体
Jun 19 Python
Pytest单元测试框架如何实现参数化
Sep 05 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 Python
详解python的异常捕获
Mar 03 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
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
简化php模板页面中分页代码的解析
2009/02/06 PHP
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
WordPress中is_singular()函数简介
2015/02/05 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
打开超链需要“确认”对话框的方法
2007/03/08 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
深入理解js数组的sort排序
2016/05/28 Javascript
JavaScript 身份证号有效验证详解及实例代码
2016/10/20 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
Element Input组件分析小结
2018/10/11 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
Python如何根据时间序列数据作图
2020/05/12 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
英国足球店:UK Soccer Shop
2017/11/19 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
投标单位介绍信
2014/01/09 职场文书
党员自我评价2015
2015/03/03 职场文书
信仰纪录片观后感
2015/06/08 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL
Apache Hudi 加速传统的批处理模式
2022/04/24 Servers