我正在寻找一种方法来替换另一个角色。
例如我们有:
chars_to_be_replaced =“ihgr”
我们希望将它们替换为
new_char =“b”
这样新的字符串
s =“我很饿”
成为
s'=“bm bunbby”。
我很清楚你可以使用.replace或正则表达式一次一个地执行此操作,但我正在寻找一种方法只能通过字符串。
re.sub只通过字符串一次吗?还有其他方法吗?感谢
由于
答案 0 :(得分:1)
您可以使用string.translate()
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
答案 1 :(得分:0)
这个怎么样:
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)
:对于原始字符串中的每个字母,它会尝试获取字典值,除非它不存在,在这种情况下会返回原始字符。
注意:您可以通过将
)list
传递给join
而不是生成器来加快速度(
new_s = ''.join([my_dict.get(x, x) for x in s])