Python中只替换一次子串的代码实现

问题:如何实现下列的子串替换功能?

输入:s='你好你好我好我好'

输出:s='我好我好你好你好'

如果用常规的replace函数,则会出现如下不符合预期的结果

 

 可以考虑如下方法:

方法一:采用python内置的临时变量方法

方法二:采用Python maketrans() 方法用于创建字符映射的转换表,自Python3.4开始,已经没有string.maketrans(),而改为了str.maketrans()

 

# -*- coding: utf-8 -*-
s='你好你好我好我好'
# s1=s.replace('我','你').replace('你','我')
# 方法一
s1=s.replace('你','%temp%').replace('我','你').replace('%temp%','我')
#方法二
s1=s.translate(str.maketrans('你我','我你'))
print(s1)

通过上述方法即可实现只对字符串中的子串进行一次替换的实现。

 

posted on 2021-10-14 16:15  AbbeyCenter  阅读(299)  评论(0)    收藏  举报