python str translate,str.translate() --文本过滤和处理

问题: 想清除整个范围的字符,或者去掉音符

1、使用str.translate()

s = 'python\fis\tawesome\r\n'

# 第一步是清理空格,可以先建立一个小型的转换表,然后使用reanslate()方法

remap = {

ord('\t'): ' ',

ord('\f'): ' ',

ord('\r'): None

}

a = s.translate(remap)

a

Out[3]: 'python is awesome\n'

# 可以利用这种重新映射的思想进一步构建出更加庞大的转换表。例如:把所有的Unicode组合字符都去掉

import unicodedata

import sys

cmb_chrs = dict.fromkeys(c for c in range(sys.maxunicode) if unicodedata.combining(chr(c))) # combining()函数可对字符做检查,判断它是否为一个组合型字符

b = unicodedata.normalize('NFD', a) # NFC表示字符应该是全组成的(即,如果可能的话就使用单个代码点);NFD表示应该是使用组合字符,每个字符应该是能完全分解开的。

b

Out[9]: 'python is awesome\n'

b.translate(cmb_chrs)

Out[10]: 'python is awesome\n'

2、另外一种清理文本的技术涉及I/O编码和解码函数:先对文本做初步清理,然后通过结合encode()和decode()操作来处理文本

a = 'python is awesome\n'

b = unicodedata.normalize('NFD', a) # 先对原始文本做分解操作

b.encode('ascii', 'ingore').decode('ascii') # 这种方法只有当我们最终的目标是ASCII文本时才有用

Out[11]: 'python is awesome\n'

总结:

1、对于简单的替换操作,用str.replace()通常是最快的方式--即使必须多次调用也是如此

例:

def clean_spaces():

s = s.replace('\r', '')

s = s.replace('\t', ' ')

s = s.replace('\f', ' ')

return s

2、如果需要做任何高级的操作,比如字符到字符的重映射或删除,那么translate()方法还是非常快的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MicroProfile 2.2 BOM导入支持

MicroProfile 2.2刚刚发布,其中包含对Fault Tolerance,Open Tracing,Open API和Rest Client API的更新。 自2.2版以来,还支持使用BOM(物料清单)依赖项导入。 通过这种方法,我们可以在dependenc…

php内容缓存输出,PHP使用缓存即时输出内容(output buffering)的方法

PHP使用缓存即时输出内容(output buffering)的方法PHP使用缓存即时输出内容(output buffering)的方法。分享给大家供大家参考。具体如下:$buffer ini_get(output_buffering);echo str_repeat( ,$buffer1); //防止浏览器缓存ob_end_flush(); //关闭缓存for( $i1; $i…

继承能够访问父类私有字段_在单元测试中访问私有字段

继承能够访问父类私有字段首先,让我大声说一下,您需要将代码设计为可测试的,以便通过公共方法测试私有字段。 但是,(“ buts”是人们仍在编程而不是计算机本身的原因,所以在这里很高兴)有时您想…

php模拟论坛,模仿OSO的论坛(二)

模仿OSO的论坛(二)2006-10-09 00:00:00 作者:模仿OSO的论坛(二)read.php(用来显示相关主题内容)疑难问题主 题:color#993333>include "connect.inc.php";$query "select * from guestbook where id".$theme_id;$res mysql_quer…

甲骨文函数初探

我非常高兴有机会通过Cloud Native Limited Availability Program来测试Oracle功能。 去年,当我上次尝试在Oracle Groundbreaker APAC巡回赛中在Oracle Cloud中运行无服务器功能时,有两种选择。 您可以在虚拟机中运行我自己的Fn服务器,也可以…

oracle 邻接模型,【原创】MySQL 模拟Oracle邻接模型树形处理

数据库对层次结构的处理模型有好多种,可以根据自己的需求来设计模型,当然最简单的也是最容易设计的模型就是所谓的邻接模型。在这方面,其他数据库比如Oracle提数据库对层次结构的处理模型有好多种,可以根据自己的需求来设计模型&a…

json字符串导入oracle,如何在Oracle中将JSON字符串转换为JSON

我需要在Oracle查询中将JSON字符串转换为JSON。示例字符串:{"1":{"qid":1,"aid":1,"a":"Yes","isdyn":0},"2":{"qid":2,"aid":7,"a":"sdfbsjkb",&…

spring roo_使用Spring Roo进行概念验证

spring roo在Keyhole工作期间,我参与了许多项目,其中客户要求我们重写旧系统,同时保留其现有数据库。 有时,它有助于快速演示如何使用当前技术来简化开发,测试和维护其代码。 我发现可以创建一个快速示例(…

【渝粤教育】电大中专药物分析技术基础作业 题库

1.《中国药典》规定“称定”时,指称取重量应准确至所取重量的 A.10% B.1.95~2.05g C.百分之一 D.1.5~2.5g E.千分之一 错误 正确答案:左边查询 学生答案:未作答 2.2℃~10℃指 A.密闭 B.密封 C.阴凉处 D.冷处…

oracle虚拟机怎么装系统,Virtualbox怎么安装系统 VirtualBox虚拟机安装Win8系统教程 (3)...

三、对新建的虚拟机做重要的设定:1、在Oracle VM VirtualBox里面点击下刚才建好的虚拟机,然后点下上面的黄色图标“设置”,或者右键菜单里面点击设置也可以(快捷键是CtrlS)Oracle VM VirtualBox虚拟机设置2、在出来的设置页面里面&#xff0c…

JDK 12的Files.mismatch方法

JDK 12向Files类引入了一种新方法。 方法Files.mismatch(Path,Path)已通过JDK-8202302引入JDK 12,并在JDK 12 Early Access Build 20 (支持新{systemProperty} Javadoc标记的相同早期访问版本)中可用 。 JDK-8202302 [“用于比较文件的&…

【渝粤教育】电大中专计算机网络基础 (2)作业 题库

1通信中产生和发送信息的一端叫做()。 A信源 B信宿 C信道 D噪声 正确 正确答案:左边查询 学生答案:A 2通信中接收信息的一端叫做()。 A信源 B信宿 C信道 D噪声 正确 正确答案:左边查询 学生答案…

oracle xe gentoo,Oracle在gentoo下安装

补充:解决ORACLE10G安装界面中文乱码问题,修改以下变量使安装界面为英文。export LC_CTYPEen_US.UTF-8以下为原文1.OS:Gentoo-linux-2.6.23-rc5Oracle:Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86下载地址:2.使用管理员账户建立Oracle用户…

【渝粤教育】电大中专跨境电子商务理论与实务 (11)作业 题库

1.在按照交易主体类型中,( )面对的最终客户为企业或集团客户,提供企业、产品、服务等相关信息。 A.O2O跨境电商或平台 B.B2B跨境电商或平台 C.B2C跨境电商或平台 D.C2C跨境电商或平台 错误 正确答案:左边查询 学生答案…

【渝粤题库】陕西师范大学209041 金融工程学 作业(专升本)

《金融工程学》作业 一、选择题 1.证券投资收益最大化和风险最小化这两个目标( ). A.可以同时实现; B.是一致的; C.是相互冲突的; D.大多数情况下可以同时实现. 2.金融工程中,通常用( &#xff…

php 排序不影响索引,为什么不能通过索引避免排序操作呢??

谢谢各位的回复,尤其是棉花糖ONE!忘了说了,我的数据库版本是:10.2.0.4 的刚才做了一个10053事件.CASE WHEN STOCK_NUM>0 THEN 1 ELSE 0 END1 确实被重写成了STOCK_NUM>0.在这种情况下:SELECT * FROM(select /* INDEX(zsj_test) */pricefrom zsj_testwhere productnamerpa…

redis简单队列java_使用Redis的简单消息队列

redis简单队列java在本文中,我们将使用列表命令将Redis用作简单的消息队列。 假设我们有一个允许用户上传照片的应用程序。 然后在应用程序中,我们以不同大小显示照片,例如Thumb,Medium和Large。 在第一个实现中,我们…

【渝粤题库】陕西师范大学700002 细胞生物学

《细胞生物学》作业 一、名词解释 1.细胞学说   2.原位杂交    3.细胞通讯   4.核纤层 5.早熟染色体凝集 6.细胞识别    7.细胞分化    8…

【渝粤教育】电大中专Office办公软件 (2)_1作业 题库

1学习好Office办公软件这门课程,应该()。 A重视理论学习 B重视上机操作,多练多试,还要学习好基础的知识 C只看不练 D可以随便学习一下 正确 正确答案:左边查询 学生答案:B 2在使用Office2016时遇…

oracle 群集 无存储,存储的群集注意事项 - Oracle® ZFS Storage Appliance 管理指南

存储的群集注意事项为了在群集中使用而对 Oracle ZFS Storage Appliance 进行大小调整时,另有两个非常重要的注意事项。或许最重要的决定是将所有存储池的所有权分配给同一机头还是在两个机头之间分割。此处有几点要加以权衡,如下表中所示。一般来说&…