Python &引用;需要调用maketrans函数;

Python &引用;需要调用maketrans函数;,python,string,python-3.x,Python,String,Python 3.x,为什么这不起作用 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是一个无效的语法,我该如何修复它呢?

为什么这不起作用

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是一个无效的语法,我该如何修复它呢?

因为在Python 3中,它使用的是字典;看起来您正在查看Python2的文档

字典应该将代码点(整数)映射到它们的替换值(整数或unicode值),或者
None
来删除代码点

intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)

mystr.translate(trantab)
此作业不需要导入
string.maketrans
;有人可以做这项工作

演示:

从:

返回一个s的副本,其中所有字符都已通过映射映射进行映射,映射必须是Unicode序数(整数)字典到Unicode序数、字符串或
None
。未映射的字符保持不变。映射到
None
的字符将被删除


顺便说一句,Python2
unicode.translate()
也以这种方式工作,而Python3也使用旧的API。

不要命名变量
str
;您正在屏蔽内置类型。您还可以删除
分号;它们很少被需要。
>>> intab = "aeiou"
>>> outtab = "12345"
>>> trantab = str.maketrans(intab, outtab)
>>> mystr = "this is string example...wow!!!"
>>> mystr.translate(trantab)
'th3s 3s str3ng 2x1mpl2...w4w!!!'