Failing to import itertools in Python 3.5.2

Joyita Das picture Joyita Das · Jul 28, 2016 · Viewed 24.5k times · Source

I am new to Python. I am trying to import izip_longest from itertools. But I am not able to find the import "itertools" in the preferences in Python interpreter. I am using Python 3.5.2. It gives me the below error-

from itertools import izip_longest
ImportError: cannot import name 'izip_longest'

Please let me know what is the right course of action. I have tried Python 2.7 too and ended up with same problem. Do I need to use lower version Python.

Answer

Martijn Pieters picture Martijn Pieters · Jul 28, 2016

izip_longest was renamed to zip_longest in Python 3 (note, no i at the start), import that instead:

from itertools import zip_longest

and use that name in your code.

If you need to write code that works both on Python 2 and 3, catch the ImportError to try the other name, then rename:

try:
    # Python 3
    from itertools import zip_longest
except ImportError:
    # Python 2
    from itertools import izip_longest as zip_longest

# use the name zip_longest