2015-08-28 80 views
4
>>> 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' 
+2

您正在使用哪種版本的Python?在Python 3中,內建函數'zip'的行爲與Python 2中的'itertools.izip'類似。 – Blckknght

+0

Blckknght是正確的。如果你不知道如何找到python版本,請看這裏:http://stackoverflow.com/questions/9079036/detect-python-version-at-runtime –

+0

@Blckknght您好Blckknght,我使用的是版本3.4.3。你也可以沿着shell窗口的頂部欄看到它。我有與string.maketrans(...)相同的問題。見: –

回答

7

在Python 3,還有就是itertools模塊中沒有izip功能,因爲內置zip功能(它不需要任何進口訪問)現在的行爲像Python 2中的itertools.izip一樣。所以,要使代碼正常工作,只需使用zip而不是itertools.izip

您還提到了string.maketrans的問題。這是Python 3中不再存在的另一個函數。它現在是str類的一種方法:str.maketrans。但請注意,其行爲與Python 2中的string.maketrans有點不同,因爲translate字符串方法採用不同的參數(字典而不是256個字符的字符串)。

這聽起來像你可能會遵循爲Python 2編寫的指南,但使用Python 3來運行你的代碼。這可能會讓人困惑,因爲語言的主要版本之間有重大變化。您應該嘗試找到一個針對Python 3的指南。我不建議使用Python 2來編寫代碼,除非您確實必須遵循當前的指南。

+0

謝謝你的迴應。事實上,我在幻燈片上觀看了一個在線課程視頻,該視頻必須使用Python 2進行錄製。 –