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列出目录下指定文件与子目录的方法
Jul 03 Python
Python编程中字符串和列表的基本知识讲解
Oct 14 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
python文件名和文件路径操作实例
Sep 29 Python
使用EduBlock轻松学习Python编程
Oct 08 Python
Python函数装饰器常见使用方法实例详解
Mar 30 Python
Python3字符串encode与decode的讲解
Apr 02 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
win10下python2和python3共存问题解决方法
Dec 23 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
Python json解析库jsonpath原理及使用示例
Nov 25 Python
python3使用diagrams绘制架构图的步骤
Apr 08 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
用jscript实现列出安装的软件列表
2007/06/18 Javascript
CCPry JS类库 代码
2009/10/30 Javascript
Javascript中的相等与不等运算
2010/04/25 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
node内置调试方法总结
2018/02/22 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
对vue中v-if的常见使用方法详解
2018/09/28 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
解决python爬虫中有中文的url问题
2018/05/11 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
在weblogic中发布ejb需涉及到哪些配置文件
2012/01/17 面试题
前台文员职责范本
2014/03/07 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
python爬虫框架feapde的使用简介
2021/04/20 Python
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
Golang数据类型和相互转换
2022/04/12 Golang