python中快速进行多个字符替换的方法小结

先给出结论:

  1. 要替换的字符数量不多时,可以直接链式replace()方法进行替换,效率非常高;
  2. 如果要替换的字符数量较多,则推荐在 for 循环中调用 replace() 进行替换。

可行的方法:

1. 链式replace()

string.replace().replace()

1.x 在for循环中调用replace() 「在要替换的字符较多时」

2. 使用string.maketrans

3. 先 re.compile 然后 re.sub

……

def a(text):
 chars = "&#"
 for c in chars:
 text = text.replace(c, "\\" + c)
def b(text):
 for ch in ['&','#']:
 if ch in text:
  text = text.replace(ch,"\\"+ch)
import re
def c(text):
 rx = re.compile('([&#])')
 text = rx.sub(r'\\\1', text)
RX = re.compile('([&#])')
def d(text):
 text = RX.sub(r'\\\1', text)
def mk_esc(esc_chars):
 return lambda s: ''.join(['\\' + c if c in esc_chars else c for c in s])
esc = mk_esc('&#')
def e(text):
 esc(text)
def f(text):
 text = text.replace('&', '\&').replace('#', '\#')
def g(text):
 replacements = {"&": "\&", "#": "\#"}
 text = "".join([replacements.get(c, c) for c in text])
def h(text):
 text = text.replace('&', r'\&')
 text = text.replace('#', r'\#')
def i(text):
 text = text.replace('&', r'\&').replace('#', r'\#')

参考链接:

http://stackoverflow.com/questions/3411771/multiple-character-replace-with-python

http://stackoverflow.com/questions/6116978/python-replace-multiple-strings

http://stackoverflow.com/questions/8687018/python-string-replace-two-things-at-once

http://stackoverflow.com/questions/28775049/most-efficient-way-to-replace-multiple-characters-in-a-string

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能有所帮在,如果有疑问大家可以留言交流。

时间: 2016-12-12

Python 字符串操作方法大全

1.去空格及特殊符号 复制代码 代码如下: s.strip().lstrip().rstrip(',') 2.复制字符串 复制代码 代码如下: #strcpy(sStr1,sStr2)sStr1 = 'strcpy'sStr2 = sStr1sStr1 = 'strcpy2'print sStr2 3.连接字符串 复制代码 代码如下: #strcat(sStr1,sStr2)sStr1 = 'strcat'sStr2 = 'append'sStr1 += sStr2print sStr1 4.查

python字符串连接的N种方式总结

python中有很多字符串连接方式,今天在写代码,顺便总结一下: 最原始的字符串连接方式:str1 + str2 python 新字符串连接语法:str1, str2 奇怪的字符串方式:str1 str2 % 连接字符串:'name:%s; sex: ' % ('tom', 'male') 字符串列表连接:str.join(some_list) 第一种,想必只要是有编程经验的人,估计都知道,直接用 "+" 来连接两个字符串: 'Jim' + 'Green' = 'JimGreen' 第

python字符串替换示例

php5.2升级到5.3后,原& new的写法已经被放弃了,可以直接new了,面对上百个php文件,手动修改简直是想要命,所以写了个脚本,分分钟搞定. 复制代码 代码如下: #-*- coding:utf-8 -*- #!/usr/bin/python import os #定义程序根目录rootpath='D:\\wamp\\www\\erp\\app' def m_replace(path): for item in os.listdir(path):  nowpath=os.path.jo

Python 字符串操作实现代码(截取/替换/查找/分割)

Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾. 复制代码 代码如下: # 例1:字符串截取str = '12345678'print str[0:1]>> 1   # 输出str位置0开始到位置1以前的字符print str[1:6]  >> 23456   # 输出str位置1开始到位置6以前的字符num = 18str = '0000' + str(num) # 合并字符串pr

Python字符串拼接、截取及替换方法总结分析

本文实例讲述了Python字符串拼接.截取及替换方法.分享给大家供大家参考,具体如下: python字符串连接 python字符串连接有几种方法,我开始用的第一个方法效率是最低的,后来看了书以后就用了后面的2种效率高的方法,跟大家分享一下. 先介绍下效率比较低的方法: a = ['a','b','c','d'] content = '' for i in a: content = content + i print content content的结果是:'abcd' 后来我看了书以后,发现书上

python字符串替换的2种方法

python 字符串替换 是python 操作字符串的时候经常会碰到的问题,这里简单介绍下字符串替换方法. python 字符串替换可以用2种方法实现: 1是用字符串本身的方法. 2用正则来替换字符串 下面用个例子来实验下: a = 'hello word' 把a字符串里的word替换为python 1.用字符串本身的replace方法 复制代码 代码如下: a.replace('word','python') 输出的结果是hello python 2.用正则表达式来完成替换: 复制代码 代码如

Python中的字符串替换操作示例

字符串的替换(interpolation), 可以使用string.Template, 也可以使用标准字符串的拼接. string.Template标示替换的字符, 使用"$"符号, 或 在字符串内, 使用"${}"; 调用时使用string.substitute(dict)函数. 标准字符串拼接, 使用"%()s"的符号, 调用时, 使用string%dict方法. 两者都可以进行字符的替换. 代码: # -*- coding: utf-8 -

python 字符串split的用法分享

比如我们的存储的格式的: 格式的: 姓名,年龄|另外一个用户姓名,年龄 name:haha,age:20|name:python,age:30|name:fef,age:55 那我们可以通过字符串对象的split方法切割字符串对象为列表. a = 'name:haha,age:20|name:python,age:30|name:fef,age:55' print a.split('|') 返回结果:['name:haha,age:20', 'name:python,age:30', 'name

Python字符串替换实例分析

本文实例讲述了Python字符串替换的方法.分享给大家供大家参考.具体如下: 单个字符替换 s = 'abcd' a = ["a", "b", "c"] b = ["c", "d", "e"] import string s.translate(string.maketrans(''.join(a),''.join(b))) print s 输出结果为:abcd 字符串替换,改善版 s

Python中用format函数格式化字符串的用法

自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和:来代替%. "映射"示例 通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.format('kzc',18) Out[2]: 'kzc,18' In [3]: '{1},{0},{1}'.fo

Python通过format函数格式化显示值

英文文档: format(value[, format_spec]) Convert a value to a "formatted" representation, as controlled by format_spec. The interpretation of format_spec will depend on the type of the value argument, however there is a standard formatting syntax that

Python中用startswith()函数判断字符串开头的教程

函数:startswith() 作用:判断字符串是否以指定字符或子字符串开头 一.函数说明 语法:string.startswith(str, beg=0,end=len(string))        或string[beg:end].startswith(str)   参数说明: string:  被检测的字符串 str:      指定的字符或者子字符串.(可以使用元组,会逐一匹配) beg:    设置字符串检测的起始位置(可选) end:    设置字符串检测的结束位置(可选) 如果存

python中format()函数的简单使用教程

先给大家介绍下python中format函数,在文章下面给大家介绍python.format()函数的简单使用 ---恢复内容开始--- python中format函数用于字符串的格式化 通过关键字 print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字 grade = {'name' : '陈某某', 'fenshu': '59'} print('{name}电工考了{fenshu}'.format(**grade))#通过关键字,可用字典当关键

Python中应该使用%还是format来格式化字符串

%还是format 1.皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问题.不信你往下看. # 定义一个坐标值 c = (250, 250) # 使用%来格式化 s1 = "敌人坐标:%s" % c 上面的代码很明显会抛出一个如下的TypeError: TypeError: not all arguments converted dur

python中format函数如何使用

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能. 基本语法是通过 {} 和 : 来代替以前的 % . format 函数可以接受不限个参数,位置可以不按顺序. 例如 >>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序 'hello world' >>> "{0} {1}".for

PHP vsprintf()函数格式化字符串操作原理解析

实例 把格式化字符串写入变量中: <?php $number = 9; $str = "Beijing"; $txt = vsprintf("There are %u million bicycles in %s.",array($number,$str)); echo $txt; ?> 定义和用法 vsprintf() 函数把格式化字符串写入变量中. 与 sprintf() 不同,vsprintf() 中的参数位于数组中.数组元素将被插入到主字符串中的

Python内置函数delattr的具体用法

delattr 函数用于删除属性. delattr(x, 'foobar') 相等于 del x.foobar. 语法 setattr 语法:delattr(object, name) 参数 object -- 对象. name -- 必须是对象的属性. 英文文档: delattr(object, name) This is a relative of setattr(). The arguments are an object and a string. The string must be

Python实现filter函数实现字符串切分

在工作中,经常遇到字符串切分,尤其是操作linux命令,返回一段文本,如下面这种格式 Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 3.1G 35G 9% / tmpfs 939M 0 939M 0% /dev/shm 在整理数据时,以前我都是直接split(' '), 结果当然是很不理想啊,今天get到了一个新技术----直接split() 下面看示例: if __name__ == '__main__': line = '/

在Python中用split()方法分割字符串的使用介绍

split()方法返回的字符串中的所有单词的列表,使用str作为分隔符(如果在未指定的所有空格分割),可选择限当前分割为数量num. 语法 以下是split()方法的语法: str.split(str="", num=string.count(str)). 参数 str -- 这是任何分隔符,默认情况下是空格. num -- 这是要分割的行数. 返回值 此方法返回行列表. 例子 下面的示例演示了split()方法的使用. #!/usr/bin/python str = "Li