[Python-Dev] Adding an rslice() builtin?

Nick Coghlan ncoghlan at iinet.net.au
Tue Aug 29 11:29:28 CEST 2006


A discussion on the py3k list reminded me that translating a forward slice 
into a reversed slice is significantly less than obvious to many people. Not 
only do you have to negate the step value and swap the start and stop values, 
but you also need to subtract one from each of the step values, and ensure the 
new start value was actually in the original slice:

   reversed(seq[start:stop:step]) becomes seq[(stop-1)%abs(step):start-1:-step]

An rslice builtin would make the latter version significantly easier to read:

   seq[rslice(start, stop, step)]

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://www.boredomandlaziness.org


More information about the Python-Dev mailing list