tag:blogger.com,1999:blog-2396375578166507166.post8710032590952555449..comments2023-09-10T10:26:29.012+02:00Comments on Christophe Simonis @ Tiny: Python: reverse enumerateChristophe Simonishttp://www.blogger.com/profile/07257677913888827668noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-2396375578166507166.post-22149373204834603622011-10-11T08:02:45.775+02:002011-10-11T08:02:45.775+02:00Um... the xrange bla -1 -1 can be substituted with...Um... the xrange bla -1 -1 can be substituted with reverse(xrange(len(iterable))) :)<br /><br />>>> import itertools<br />>>> r_enumerate= lambda iterable: itertools.izip(reversed(xrange(len(iterable))), reversed(iterable))<br />>>> list(r_enumerate(['zero', 'one', 'two']))<br />[(2, 'two'), (1, 'one'), (0, 'zero')]ΤΖΩΤΖΙΟΥhttps://www.blogger.com/profile/07123532353472970521noreply@blogger.comtag:blogger.com,1999:blog-2396375578166507166.post-16901048583152971372011-03-08T21:11:08.937+01:002011-03-08T21:11:08.937+01:00Courtesy of earthboundkid on reddit (about a week ...Courtesy of earthboundkid on reddit (about a week ago):<br /><br />def r_enumerate(container):<br /> i = len(container)<br /> for item in reversed(container):<br /> i = i - 1<br /> yield i, item<br /><br />This fails if an object implements __reversed__ without also implementing __len__. If needed, you could test for the latter case and first exhaust reversed(container) to get the length.<br /><br />P.S. Why doesn't Blogger's comment system support a mechanism for pre-formatted text? I had to manually convert spaces to HTML non-breaking spaces.eryksunhttps://www.blogger.com/profile/15437401811057805475noreply@blogger.comtag:blogger.com,1999:blog-2396375578166507166.post-75350094223250588192011-03-08T19:48:13.273+01:002011-03-08T19:48:13.273+01:00def reverseEnumerate(obj, start=0):
for index ...def reverseEnumerate(obj, start=0):<br /> for index in xrange(len(obj)-start-1, -1, -1):<br /> yield index, obj[index]Frafrahttps://www.blogger.com/profile/11694879864597726267noreply@blogger.comtag:blogger.com,1999:blog-2396375578166507166.post-70504790024620542262009-11-07T18:22:30.965+01:002009-11-07T18:22:30.965+01:00def r_enumerate(iterable):
"""e...def r_enumerate(iterable):<br /> """enumerator for reverse iteration of an iterable"""<br /> enum = enumerate(reversed(iterable))<br /> last = len(iterable)-1<br /> return ((last - i, x) for i,x in enum)eryksunhttps://www.blogger.com/profile/15437401811057805475noreply@blogger.com