为什么这不起作用?
from string import maketrans
intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)
str= "this is string example...wow!!!";
print str.translate(trantab);
它说我需要制作maketrans功能,这究竟意味着什么? 另外它说print str.translate是一种无效的语法,我该如何修复呢?
答案 0 :(得分:2)
因为在Python 3中str.maketrans()
取代了字典;看来你正在看Python 2的文档。
字典应将代码点(整数)映射到其替换值(整数或unicode值),或None
以删除代码点。
intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)
mystr.translate(trantab)
无需为此作业导入string.maketrans
; str.maketrans()
static function可用于完成工作。
演示:
>>> intab = "aeiou"
>>> outtab = "12345"
>>> trantab = str.maketrans(intab, outtab)
>>> mystr = "this is string example...wow!!!"
>>> mystr.translate(trantab)
'th3s 3s str3ng 2x1mpl2...w4w!!!'
来自str.translate()
documentation:
返回s的副本,其中所有字符都已通过 map 映射,该映射必须是Unicode序数(整数)到Unicode序列,字符串或
None
的字典。未映射的字符保持不变。映射到None
的字符将被删除。
顺便提一下,Python 2 unicode.translate()
也可以这样工作,而在Python 3中,bytes.translate()
也使用旧的API。