当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python maketrans() and translate()用法及代码示例


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

maketrans()

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

语法:maketrans(str1,str2,str3)


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

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

使用maketrans()进行翻译

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

语法:translate(table,delstr)

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

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


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

# Python3 code to demostrate  
# translations using  
# maketrans() and translate() 
  
# specify to translate chars 
str1 = "wy"
  
# specify to replace with 
str2 = "gf"
  
# delete chars 
str3 = "u"
  
# target string  
trg = "weeksyourweeks"
  
# using maketrans() to  
# construct translate 
# table 
table = trg.maketrans(str1, str2, str3) 
  
# Printing original string  
print ("The string before translating is:", end ="") 
print (trg) 
  
# using translate() to make translations. 
print ("The string after translating is:", end ="") 
print (trg.translate(table))

输出:

The string before translating is:weeksyourweeks
The string after translating is:geeksforgeeks


不使用maketrans()进行翻译

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


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

# Python3 code to demostrate  
# translations without 
# maketrans()  
  
# specifying the mapping  
# using ASCII  
table = { 119 :103, 121 :102, 117 :None } 
  
# target string  
trg = "weeksyourweeks"
  
# Printing original string  
print ("The string before translating is:", end ="") 
print (trg) 
  
# using translate() to make translations. 
print ("The string after translating is:", end ="") 
print (trg.translate(table))

输出:

The string before translating is:weeksyourweeks
The string after translating is:geeksforgeeks


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



相关用法


注:本文由纯净天空筛选整理自manjeet_04大神的英文原创作品 Python | maketrans() and translate() functions。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。