python - zip variable empty after first use -
python 3.2.3, using idle, python shell
t = (1,2,3) t2 = (5,6,7) z = zip(t,t2) x in z : print(x)
result : (1,5) (2,6) (3,7)
putting in same loop code display z in loop again, after (doing nothing between above , next part) :
for x in z : print(x)
result : (blank, in no result)
z still exists,
z
results in
<zip object @ 0xa8d48ec>
i can reassign t,t2 zipped again, works once , once, again.
is how supposed work? theres no mention in docs http://docs.python.org/3.2/library/functions.html#zip this.
that's how works in python 3.x. in python2.x, zip
returned list of tuples, python3.x, zip
behaves itertools.izip
behaved in python2.x. regain python2.x behavior, construct list zip
's output:
z = list(zip(t,t2))
note in python3.x, lot of builtin functions return iterators rather lists (map
, zip
, filter
)
Comments
Post a Comment