我的IDLE不识别itertools.izip()作为函数

时间:2015-08-28 00:51:12

标签: python itertools

>>> itertools.izip('ABCD', 'xy')
Traceback (most recent call last):
  File "<pyshell#55>", line 1, in <module>
    itertools.izip('ABCD', 'xy')
AttributeError: 'module' object has no attribute 'izip'

1 个答案:

答案 0 :(得分:14)

在Python 3中,izip模块中没有itertools函数,因为内置zip函数(不需要任何导入来访问)现在表现得像{{1在Python 2中做过。所以,为了使你的代码有效,只需使用itertools.izip而不是zip

您还提到了itertools.izip的问题。这是另一个不再存在于Python 3模块中的函数。它现在是string.maketrans类的一种方法:str。但请注意,它的行为与Python 2中的str.maketrans略有不同,因为字符串上的string.maketrans方法采用不同的参数(字典而不是256个字符的字符串)。

听起来您可能正在遵循为Python 2编写的指南,但使用Python 3来运行您的代码。这可能令人困惑,因为该语言的主要版本之间存在显着的变化。您应该尝试找到针对Python 3的指南。我不建议您使用Python 2进行编码,除非您真的必须遵循当前的指南。