关于 str.translate() 函数的一点尝试,诸君有兴趣可以耐着性子看看。
seq = [None for x in range(127)] # 此处用 sequence 或 mapping(字典即是一种 mapping)都可以
for i in range( ord('a'), ord('z') + 1 ):
seq[i] = chr(i - 32)
for i in range( ord('A'), ord('Z') + 1 ):
seq[i] = chr(i + 32)
seq[ord('!')] = " AMAZING!"
print("Hello World!".translate(seq))
输出:
hELLOwORLD AMAZING!
另外,根据 python3.7.3 文档,str 类型的 translate() 函数只接受一个参数,没有原文中的第二个 deletechars 参数。bytearray, bytes 和 str 三种对象的 translate() 函数原型抄写如下:
bytearray.translate(table, delete=b'')
bytes.translate(table, delete=b'')
str.translate(table)
cangyin
cangyin
152***5226@qq.com1年前 (2019-07-06)