📜  Python | 字符串translate(1)

📅  最后修改于: 2023-12-03 15:34:06.363000             🧑  作者: Mango

Python | 字符串translate

在 Python 中,字符串对象是不可改变的。 这意味着一旦定义了字符串,就无法修改它。

然而,有时我们需要修改字符串的某些部分。 这时就需要用到字符串的 translate() 方法。 translate() 方法用于按照指定的方式转换字符串。

语法
str.translate(table[, deletechars]);
参数说明
  • table - 翻译表,翻译表是通过maketrans方法转换而来的。
  • deletechars - 字符串中要删除的字符列表。
示例

下面的例子演示了如何使用 translate() 方法将字符串中的 "aeiou" 替换为 "12345":

str = "this is string example....wow!!!";
intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)
print(str.translate(trantab))

输出:

th3s 3s str3ng 2x1mpl2....w4w!!!

在上面的例子中,我们首先定义了一个字符串,然后定义了两个字符串变量(intab 和 outtab),它们用来存储我们要替换的字符和用来替换的新字符。 我们还定义了一个承载翻译表的变量 (trantab),并使用 maketrans() 方法将 intab 和 outtab 转换为翻译表。 最后,我们使用 translate() 方法将 str 中的字符根据翻译表进行替换。

可以看到,字符串中的 "aeiou" 已被替换为 "12345"。

改变字符大小写

translate() 方法还可以用来改变字符串的大小写。

下面的例子演示了如何使用 translate() 方法将字符串中的所有小写字母都转换为大写字母:

str = "this is string example....wow!!!";
trantab = str.maketrans("abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
print(str.translate(trantab))

输出:

THIS IS STRING EXAMPLE....WOW!!!

在上面的例子中,我们使用 maketrans() 方法创建一个翻译表,该翻译表将小写字母转换为大写字母。 然后,我们使用 translate() 方法将 str 中的字符根据翻译表进行替换。

删除特定字符

translate() 方法还可以用于删除字符串中的特定字符。可以将 deletechars 参数设置为要删除的字符列表。

下面的例子演示了如何使用 translate() 方法删除字符串中的字符 "." 和 "!":

str = "this is string example....wow!!!";
trantab = str.maketrans("", "", ".!")
print(str.translate(trantab))

输出:

this is string examplewow

在上面的例子中,我们将 deletechars 参数设置为空字符串,这意味着我们要去除空字符串中列出的所有字符。 然后,我们使用 translate() 方法根据翻译表进行替换。

总结

在 Python 中,字符串对象是不可改变的。 但是,使用 translate() 方法可以修改字符串的某些部分。 translate() 方法的参数 table 是通过 maketrans() 方法转换而来的翻译表,我们可以使用该翻译表来替换字符串中的特定字符。 要删除特定字符,请将 deletechars 参数设置为要删除的字符列表。