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入门篇之字典
Oct 17 Python
Fiddler如何抓取手机APP数据包
Jan 22 Python
Python使用tablib生成excel文件的简单实现方法
Mar 16 Python
Python增量循环删除MySQL表数据的方法
Sep 23 Python
深入理解Python中的*重复运算符
Oct 28 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 Python
Python 离线工作环境搭建的方法步骤
Jul 29 Python
python中selenium库的基本使用详解
Jul 31 Python
python判断一个变量是否已经设置的方法
Aug 13 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
Nov 17 Python
python解包概念及实例
Feb 17 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_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
探讨:php中在foreach中使用foreach ($arr as &$value) 这种类型的解释
2013/06/24 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
如何搜索查找并解决Django相关的问题
2014/06/30 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
python 制作简单的音乐播放器
2020/11/25 Python
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
应届毕业生自我鉴定范文
2013/12/27 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
谢师宴邀请函
2015/02/02 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
2015新员工工作总结范文
2015/10/15 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
Redis实战高并发之扣减库存项目
2022/04/14 Redis