📌  相关文章
📜  Python | maketrans和translate

📅  最后修改于: 2020-07-13 13:26:33             🧑  作者: Mango

在编程世界中,很少需要在整个文件中一次替换所有单词/字符python使用函数translate()及其辅助函数maketrans()提供此功能。本文讨论了这两种功能。

maketrans()

maketrans()函数用于构造转换表,即指定需要在整个字符串中替换的字符列表或需要从字符串中删除的字符的列表 

语法:maketrans(str1, str2, str3)

参数:
str1:指定需要替换的字符列表。
str2:指定需要替换字符的字符列表。
str3:指定需要删除的字符列表。

返回:返回转换表,该表指定了translate()可以使用的转换

 

使用maketrans()进行翻译

为了翻译字符串中的字符,translate()用于进行翻译。此函数使用通过maketrans()指定的转换映射。 

语法:nslate(table, delstr)

参数:
table:指定要执行翻译的翻译映射。
delstr:可以将删除字符串指定为表中未提及的可选参数。

返回:使用转换表执行转换后,返回参数字符串。

代码#1:使用translate()和maketrans()进行翻译的代码。

# Python3代码使用maketrans()和translate()演示翻译
  
# 指定翻译字符 
str1 = "wy"
  
# 指定替换为 
str2 = "gf"
  
# 删除字符 
str3 = "u"
  
# 目标字符串  
trg = "weeksyourweeks"
  
# 使用maketrans()构造转换表 
table = trg.maketrans(str1, str2, str3) 
  
# 打印原始字符串  
print ("翻译前的字符串是 : ", end ="") 
print (trg) 
  
# 使用translate()进行翻译. 
print ("翻译后的字符串是 : ", end ="") 
print (trg.translate(table))

输出:

翻译前的字符串是 : weeksyourweeks
翻译后的字符串是 : geeksforgeeks
不带maketrans()进行翻译

还可以通过指定翻译词典并作为充当映射的对象传递来实现翻译。在这种情况下,不需要maketrans()执行翻译。

代码2:无需maketrans()即可翻译的代码。

# Python3代码演示不带maketrans()的翻译  
  
# 使用ASCII指定映射  
table = { 119 : 103, 121 : 102, 117 : None } 
  
# 目标字符串  
trg = "weeksyourweeks"
  
# 打印原始字符串  
print ("翻译前的字符串是 : ", end ="") 
print (trg) 
  
# 使用translate()进行翻译. 
print ("翻译后的字符串是 : ", end ="") 
print (trg.translate(table)) 

输出:

翻译前的字符串是 : weeksyourweeks
翻译后的字符串是 : geeksforgeeks

应用:
在很多情况下,编码或开发过程中可能会发生错误,这些功能提供了简便快捷的方法来替换和纠正错误,并可能节省大量时间。