python字元對映表和字元替換

weixin_52211352發表於2020-12-06

python中有一個內建函式maketrans()可以對兩個字串進行字元對映,建立出對映表。
結構如下:

str.maketrans(intab,outtab)

當使用該函式時,將會把intab中的字串對out字串中的字元進行一一對應。
而使用translate()函式則可以利用對映表字元對指定字串的字元進行替換。
結構如下:

str.translate(table)

示例:

str1="abcdefghijklmnopqrstuvwxyz"
str2="qwertyuiopasdfghjklzxcvbnm"
table=str.maketrans(str1,str2)
str="sword art online"
print(str.translate(table))#==>lvgkr qkz gfsoft

上面的例子使用了這兩個函式寫了一個簡單的加密程式。其中str1是函式str.maketrans(intab,outtab)中的intab,而str2是str.maketrans(intab,outtab)中的outtab。
不過這種加密方法有一個問題。就是intab與outtab所代表的的字串的長度必須一致,且各自的字串中的字元必須唯一,否則解密時容易出錯。
示例:

str1="abcdefghijklmnopqrstuvwxyz"
str2="qwertyuiopasdfghjklzxcvbnm"
table1=str.maketrans(str1,str2)
table1_1=str.maketrans(str2,str1)
str="sword art online"
jiami=str.translate(table1)
jiemi=jiami.translate(table1_1)
print(jiami)#==>lvgkr qkz gfsoft
print(jiemi)#==>sword art online

相關文章