在 Python 中批量替换字符串中的多个字符

在本文中,我们将讨论替换字符串中多个字符的不同方法。

假设我们有一个名为 str1 的字符串。

str1 = "i love python"

现在,我们要替换其中的 3 个字符,“i”将替换为“I”,“l”将替换为“L”,“p”将替换为“P”。

使用 replace()

在 python 中,String 类提供了一个内置的方法 replace(),可用于将旧字符替换为新字符。

replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数 max,则替换不超过 max 次。

str.replace(old, new[, max])

str1 = "i love python"
char1 = {'i': 'I', 'l': 'L', 'p': 'P'}
for key, value in char1.items():
    str1 = str1.replace(key, value)
print(str1)

输出:

I Love Python

使用 translate()

在 python 中,String 类还提供了一个内置的方法 translate(),也可以实现将旧字符替换为新字符的功能。

maketrans() 方法用于创建字符映射的转换表, translate() 方法根据给出的转换表转换字符串的字符。

str1 = "i love python"
char1 = {'i': 'I', 'l': 'L', 'p': 'P'}
str1 = str1.translate(str.maketrans(char1))
print(str1)

使用正则表达式

Python 中的正则表达式模块 (RE) 提供了一个函数 sub(),借助该函数,我们还可以替换字符串的多个字符。

import re
str1 = "i love python"
char1 = {'i': 'I', 'l': 'L', 'p': 'P'}
for key, value in char1.items():
    str1 = re.sub("[ilp]", lambda x: char1[x.group(0)], str1)
print(str1)

使用 for 循环

我们还可以使用 for 循环替换字符串中的多个字符串。当找到匹配的字符时,它将用新字符替换该字符,并将新字符添加到字符串中。如果没有找到该字符的匹配字符,则将该字符添加到字符串中。

str1 = "i love python"
char1 = {'i': 'I', 'l': 'L', 'p': 'P'}
str2 = ''
for i in str1:
    if i in char1:
        str2 += char1[i]
    else:
        str2 += i
print(str2)

?

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!

?

原文链接:,转发请注明来源!