Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中用X替换小写ASCII字符_Python_String_Replace - Fatal编程技术网

在Python中用X替换小写ASCII字符

在Python中用X替换小写ASCII字符,python,string,replace,Python,String,Replace,用字符串中的“X”替换小写字符的最干净、最具Python风格的代码是什么?例如,ABCDEFGhijklmnopQRSTUVwxyz将变成abcdefgxxxxxxqrstuvxxx您可以使用正则表达式: import re output = re.sub( r'[a-z]', 'X', inputString ) 非常简单: >>> import re >>> S='ABCDEFGhijklmnopQRSTUVwxyz' >>> re.s

用字符串中的“X”替换小写字符的最干净、最具Python风格的代码是什么?例如,
ABCDEFGhijklmnopQRSTUVwxyz
将变成
abcdefgxxxxxxqrstuvxxx

您可以使用正则表达式:

import re
output = re.sub( r'[a-z]', 'X', inputString )
非常简单:

>>> import re
>>> S='ABCDEFGhijklmnopQRSTUVwxyz'
>>> re.sub('[a-z]', 'X', S)
'ABCDEFGXXXXXXXXXQRSTUVXXXX'
我会用它;很容易找到最快的方法。正则表达式在速度上无法达到这一点

Python 2版本:

import string

map = string.maketrans(string.ascii_lowercase, 'X' * len(string.ascii_lowercase))
mapped = inputstring.translate(map)
Python 3版本:

import string

map = str.maketrans(dict.fromkeys(string.ascii_lowercase, 'X'))
mapped = inputstring.translate(map)
演示(Python 2):

str.translate()
此处的magniture阶数更快:

>>> import timeit
>>> import re
>>> def regex_replace(s, _sub=re.compile(r'[a-z]').sub):
...     return _sub('X', s)
... 
>>> regex_replace(inputstring)
'ABCDEFGXXXXXXXXXQRSTUVXXXX'
>>> timeit.timeit('f(s)', 'from __main__ import regex_replace as f, inputstring as s')
2.6076979637145996
>>> timeit.timeit('s.translate(m)', 'from __main__ import inputstring as s, map as m')
0.13378620147705078
str.translate()

>>> import timeit
>>> import re
>>> def regex_replace(s, _sub=re.compile(r'[a-z]').sub):
...     return _sub('X', s)
... 
>>> regex_replace(inputstring)
'ABCDEFGXXXXXXXXXQRSTUVXXXX'
>>> timeit.timeit('f(s)', 'from __main__ import regex_replace as f, inputstring as s')
2.6076979637145996
>>> timeit.timeit('s.translate(m)', 'from __main__ import inputstring as s, map as m')
0.13378620147705078