30

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.

Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
Joyita Das
  • 447
  • 1
  • 5
  • 12

2 Answers2

75

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
Nickolay
  • 31,095
  • 13
  • 107
  • 185
Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
0

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