當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。