当前位置:
首页 > Python基础教程 >
-
python删除字符串中指定字符的方法
这篇文章主要介绍了python删除字符串中指定字符的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
最近开始学机器学习,学习分析垃圾邮件,其中有一部分是要求去除一段字符中的标点符号,查了一下,网上的大多很复杂例如这样
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内置的标点符号的合集
既然看到了就总结下
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
原文链接:https://www.cnblogs.com/crazy-joker/p/9194251.html
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
开启SQLSERVER数据库缓存依赖优化网站性能
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比