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

 更新时间:2018年08月13日 08:25:57   作者:Crazy丶Joker  
这篇文章主要介绍了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内置的标点符号的合集

既然看到了就总结下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python 多进程和协程配合使用写入数据

    python 多进程和协程配合使用写入数据

    这篇文章主要介绍了python 多进程和协程配合使用写入数据,帮助大家利用python高效办公,感兴趣的朋友可以了解下
    2020-10-10
  • python 教程实现 turtle海龟绘图

    python 教程实现 turtle海龟绘图

    这篇文章主要介绍了python 教程实现 turtle绘制海龟绘图,文章基于python的相关资料展开turtle绘制海龟绘图的详细内容,需要的小伙伴可以参考一下
    2022-05-05
  • 基于Flask实现的Windows事件ID查询系统

    基于Flask实现的Windows事件ID查询系统

    Windows操作系统的事件日志系统记录了数百种不同的事件ID,每个ID对应特定的系统事件,本文介绍如何构建一个基于Web的事件ID查询系统,文章通过代码示例介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • 修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法

    修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法

    这篇文章主要介绍了修复CentOS7升级Python到3.6版本后yum不能使用的问题,本文给大家带来了解决方法,需要的朋友可以参考下
    2018-01-01
  • python实现批量解析邮件并下载附件

    python实现批量解析邮件并下载附件

    这篇文章主要为大家详细介绍了python实现批量解析邮件并下载附件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • python requests完成接口文件上传的案例

    python requests完成接口文件上传的案例

    这篇文章主要介绍了python requests完成接口文件上传的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • matplotlib 画双轴子图无法显示x轴的解决方法

    matplotlib 画双轴子图无法显示x轴的解决方法

    这篇文章主要介绍了matplotlib 画双轴子图无法显示x轴的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Python操作SQLite数据库过程解析

    Python操作SQLite数据库过程解析

    这篇文章主要介绍了Python操作SQLite数据库过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 详解Python静态网页爬取获取高清壁纸

    详解Python静态网页爬取获取高清壁纸

    这篇文章主要介绍了Python爬取高清壁纸,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 教你怎么用PyCharm为同一服务器配置多个python解释器

    教你怎么用PyCharm为同一服务器配置多个python解释器

    当我们在服务器上创建了多个虚拟环境时,也可以在 PyCharm 中配置这些虚拟环境,方便不同的项目使用不同的环境,然而按照网上教程添加多个python解释器后,PyCharm会自动帮我们创建多个重复的服务器,本文主要给出该问题的解决方法,同时也对添加解释器做一个详细的讲解
    2021-05-05

最新评论