izip не работает в Python 3.x

Я пытаюсь импортировать модуль izip следующим образом:

from itertools import izip 

Однако после перехода с Python 2.7 на 3 – это, похоже, не работает.

Я пытаюсь написать в файл csv:

 writer.writerows(izip(variable1,2)) 

Но мне не повезло. Все еще встречаются ошибки.

В Python 3 встроенный zip выполняет ту же работу, что и izip в 2.x (возвращает генератор вместо списка), но немного быстрее, поскольку это встроенная функция.

Вот izip между zip в Python 2 и 3 и izip в Python 2:

Python 2.7:

 In [5]: %timeit list(izip(range(100), range(100))) 100000 loops, best of 3: 5.16 µs per loop In [6]: %timeit zip(range(100), range(100)) 100000 loops, best of 3: 3.87 µs per loop 

Python 3:

 In [2]: %timeit list(zip(range(100), range(100))) 100000 loops, best of 3: 3.84 µs per loop 

В этом случае, поскольку аргументы zip должны поддерживать итерацию, вы не можете использовать 2 в качестве аргумента. Поэтому, если вы хотите написать 2 переменную как строку CSV, вы можете поместить их в кортеж или список:

 writer.writerows((variable1,2)) 

Также из itertools вы можете импортировать zip_longest как более гибкую функцию, которую вы можете использовать на итераторах разного размера.