Не удалось импортировать itertools в Python 3.5.2

Я новичок в Python. Я пытаюсь импортировать izip_longest из itertools. Но я не могу найти импорт "itertools" в настройках интерпретатора Python. Я использую Python 3.5.2. Это дает мне следующую ошибку -

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

пожалуйста, дайте мне знать, каков правильный курс действий. Я тоже пробовал Python 2.7 и закончил с той же проблемой. Нужно ли использовать более низкую версию Python.

2 ответов


izip_longest был переименован to zip_longest в Python 3 (Примечание, нет i в начале), импортируйте это вместо:

from itertools import zip_longest

и используйте это имя в своем коде.

Если вам нужно написать код, который работает как на Python 2 и 3, лови ImportError чтобы попробовать другое имя, затем переименуйте:

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

одним из простых способов импорта любой функции является импорт объектов(например:импортировать itertools как это) Если вы не хотите скрыть другие функции. Поскольку функции в модулях меняются в соответствии с версией python, простой способ проверить, присутствует ли функция в модуле через dir ()