importing izip from itertools module gives NameError in Python 3.x

I am trying to import the izip module like so:

from itertools import izip

However after recently changing over from Python 2.7 to 3 – it doesn’t seem to work.

I am trying to write to a csv file:

writer.writerows(izip(variable1,2))

But I have no luck. Still encounter an error.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

In Python 3 the built-in zip does the same job as itertools.izip in 2.X(returns an iterator instead of a list). The zip implementation is almost completely copy-pasted from the old izip, just with a few names changed and pickle support added.

Here is a benchmark between zip in Python 2 and 3 and izip in Python 2:

Python 2.7:

from timeit import timeit

print(timeit('list(izip(xrange(100), xrange(100)))',
             'from itertools import izip',
             number=500000))

print(timeit('zip(xrange(100), xrange(100))', number=500000))

Output:

1.9288790226
1.2828938961

Python 3:

from timeit import timeit

print(timeit('list(zip(range(100), range(100)))', number=500000))

Output:

1.7653984297066927

In this case since zip‘s arguments must support iteration you can not use 2 as its argument. So if you want to write 2 variable as a CSV row you can put them in a tuple or list:

writer.writerows((variable1,2))

Also from itertools you can import zip_longest as a more flexible function which you can use it on iterators with different size.

Method 2

One of the ways which helped me is:

try:
    from itertools import izip as zip
except ImportError: # will be 3.x series
    pass

Method 3

Use zip instead of izip directly in python 3, no need to import anything.

For further visit here.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x