python删除字符串中指定字符的方法

作者:Crazy丶Joker 时间:2022-12-02 18:32:44 

最近开始学机器学习,学习分析垃圾邮件,其中有一部分是要求去除一段字符中的标点符号,查了一下,网上的大多很复杂例如这样


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

标签:python,删除,字符串,指定字符
0
投稿

猜你喜欢

  • Python 动态绑定属性和方法 

    2021-03-02 21:25:34
  • python+tkinter实现学生管理系统

    2021-02-08 18:34:19
  • JS获取当前时间的实例代码(昨天、今天、明天)

    2024-04-23 09:28:36
  • sqlserver 数据类型转换小实验

    2024-01-15 06:00:21
  • 如何利用Matplotlib库绘制动画及保存GIF图片

    2021-06-08 17:15:40
  • 你需要知道的CSS3 动画技术[译]

    2009-12-30 17:02:00
  • ie7.0浏览器 兼容问题苦煞网站设计者

    2007-08-08 17:11:00
  • 基于Bootstrap实现图片轮播效果

    2024-04-28 10:19:50
  • Python安装Pytorch最新图文教程

    2022-08-07 21:44:14
  • Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法

    2022-05-20 06:36:55
  • python小程序实现刷票功能详解

    2022-08-23 06:17:22
  • asp如何实现强制登录注册?

    2010-05-24 18:13:00
  • 树莓派升级python的具体步骤

    2023-08-04 00:28:49
  • Python玩转Excel的读写改实例

    2022-01-27 19:59:47
  • js 计算月/周的第一天和最后一天代码

    2024-05-03 15:07:32
  • mysql 5.6.26 winx64安装配置图文教程(一)

    2024-01-14 21:44:59
  • Python数据分析Matplotlib 柱状图绘制

    2023-10-19 03:00:02
  • 网站重构到底是什么

    2008-11-03 11:30:00
  • Python列表推导式与生成器用法分析

    2022-03-21 12:06:54
  • 常见的jQuery选择器汇总

    2024-04-22 22:21:35
  • asp之家 网络编程 m.aspxhome.com