python将几个不同的字符替换为only

2024-10-04 07:38:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在找一种方法用另一个字符替换一些字符。在

例如,我们有:

chars_to_be_replaced = "ihgr"

我们希望他们被

new_char = "b"

所以新的绳子

s = "im hungry"

变成

^{4磅}$

我很清楚,可以使用.replace或正则表达式一次只处理一个字符,但我正在寻找一种只遍历字符串一次的方法。在

是吗re.sub公司只穿过绳子一次?还有其他方法吗?谢谢

谢谢


Tags: to方法字符串renewbe字符replace
2条回答

这个怎么样:

chars_to_be_replaced = "ihgr"
new_char = "b"

my_dict = {k: new_char for k in chars_to_be_replaced}

s = "im hungry"

new_s = ''.join(my_dict.get(x, x) for x in s)
print(new_s)  # bm bunbby

''.join(my_dict.get(x, x) for x in s):对于原始字符串中的每个字母,它将尝试获取其字典值,除非它不存在,否则将返回原始字符串。


NOTE: You can speed it up (a bit) by passing a list to join instead of a generator:

^{pr2}$

您可以使用^{}

from string import maketrans

chars_to_be_replaced = "ihgr"
new_char = "b"
s = "im hungry"

trantab = maketrans(chars_to_be_replaced, new_char * len(chars_to_be_replaced))

print s.translate(trantab)
# bm bunbby

相关问题 更多 >