reversed(zip(...)) not working as intended

Tim Chase python.list at tim.thechases.com
Sun Mar 6 13:38:50 EST 2016


On 2016-03-06 19:29, Sven R. Kunze wrote:
> what's the reason that reversed(zip(...)) raises as a TypeError?
> 
> Would allowing reversed to handle zip and related functions lead to 
> strange errors?

Peculiar, as this works in 2.x but falls over in 3.x:

$ python
Python 2.7.9 (default, Mar  1 2015, 12:57:24) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> list(reversed(zip(range(10), range(20,100))))
[(9, 29), (8, 28), (7, 27), (6, 26), (5, 25), (4, 24), (3, 23), (2,
22), (1, 21), (0, 20)]

$ python3
Python 3.4.2 (default, Oct  8 2014, 10:45:20) 
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> list(reversed(zip(range(10), range(20,100))))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument to reversed() must be a sequence


I'm not sure why reversed() doesn't think that the thing returned by
zip() isn't a sequence.

-tkc




More information about the Python-list mailing list