天天看點

maketrans()與translate()函數

#  maketrans() 是一個靜态函數,用于生成一個對照表,供translate使用
# maketrans 僅一個參數,則該參數必須是一個字典,
# 字典的 key 要麼是一個 Unicode 編碼(一個整數),
# 要麼是一個長度為 1 的字元串,字典的 value 則可以是任意字元串、None或者 Unicode 編碼。
a = 'dobi'
# order()函數是 chr() 函數(對于8位的ASCII字元串)或 unichr() 函數(對于Unicode對象)的配對函數
#它以一個字元(長度為1的字元串)作為參數,傳回對應的 ASCII 數值,
#或者 Unicode 數值,如果所給的 Unicode 字元超出了你的 Python 定義範圍,則會引發一個 TypeError 的異常
ord('o')
# 111
ord('a')
# 97
hex(ord('狗'))
# '0x72d7'
b = {'d':'dobi', 111:' is ', 'b':97, 'i':' \u72d7\u72d7'}
table = str.maketrans(b)
print(a.translate(table))

# 有兩個參數,則兩個參數形成對應關系且兩個參數的長度一緻
a = 'dobi is a dog'
b = a.maketrans('dobi','####')
print(a.translate(b))
#   #### #s a ##g
# 如果有第三個參數則第三個參數必須是字元串,該字元串将自動映射到none(就是傳回的值直接删除第三個參數的内容)
c = a.maketrans('dobi','####','ob')   # 第三個字元串 自動定映射到none 直接省略
print(a.translate(c))