如何在Python中一次性替换字符串中的多组字符?
解决多组字符替换与replace方法的疑问
1. 用maketrans同时替换多组字符
maketrans支持一次性定义多组字符映射,只要保证原字符序列和目标字符序列长度一致即可。比如你要把'a'换成'z',同时把'S'换成'P',代码可以这么写:
string = "Hello Sam!" # 原字符与目标字符一一对应:S→P,a→z trans_table = string.maketrans("Sa", "Pz") print(string.translate(trans_table)) # 输出:Hello Pzm!
如果需要更灵活的映射(比如单个字符替换成多字符、或者删除指定字符),还可以给maketrans传入字典参数:
# 字典键为原字符,值为目标字符(传None表示删除该字符) trans_table = string.maketrans({'S': 'P', 'a': 'z', '!': None}) print(string.translate(trans_table)) # 输出:Hello Pzm
2. replace方法是否替换所有匹配项
默认情况下,replace会替换字符串中全部匹配的字符/子串。示例:
string = "aaa bbb aaa" print(string.replace('a', 'z')) # 输出:zzz bbb zzz
如果只想替换指定次数,给第三个参数count传入数字即可:
print(string.replace('a', 'z', 2)) # 输出:zza bbb aaa
内容的提问来源于stack exchange,提问作者Dovydas
相关产品推荐
相关产品推荐

