Python|一次替换多个字符
用另一个字符替换一个字符是过去每个Python程序员都会遇到的常见问题。但有时,我们需要一个简单的单线解决方案来执行此特定任务。让我们讨论可以执行此任务的某些方式。
方法 #1:使用嵌套的replace()
这个问题可以使用嵌套的替换方法来解决,该方法在内部会创建一个临时文件。变量来保持中间替换状态。
# Python3 code to demonstrate working of
# Replace multiple characters at once
# Using nested replace()
# initializing string
test_str = "abbabba"
# printing original string
print("The original string is : " + str(test_str))
# Using nested replace()
# Replace multiple characters at once
res = test_str.replace('a', '%temp%').replace('b', 'a').replace('%temp%', 'b')
# printing result
print("The string after replacement of positions : " + res)
输出 :
The original string is : abbabba
The string after replacement of positions : baabaab
方法 #2:使用translate() + maketrans()
还有一个专用函数可以在一行中执行此类替换任务,因此这是解决此特定问题的推荐方法。仅适用于 Python2。
# Python code to demonstrate working of
# Replace multiple characters at once
# Using translate() + maketrans()
import string
# initializing string
test_str = "abbabba"
# printing original string
print("The original string is : " + str(test_str))
# Using translate() + maketrans()
# Replace multiple characters at once
res = test_str.translate(string.maketrans("ab", "ba"))
# printing result
print("The string after replacement of positions : " + res)
输出 :
The original string is : abbabba
The string after replacement of positions : baabaab