Failing to import itertools in Python 3.5.2

Question:

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.

Asked By: Joyita Das

||

Answers:

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
Answered By: Martijn Pieters

One of the simple way of importing any feature is through object importing(ex: import itertools as it) unless you want to hide other features. Since features in modules does change according to python version, Easy way to check whether the feature is present in module is through dir() function.

import itertools as it
dir(it)

It’ll list all the features in it

Answered By: DILEEP_B