Tuple slices

Nick Coghlan ncoghlan at iinet.net.au
Tue Jan 25 09:39:36 EST 2005


George Sakkis wrote:
> You're probably right about the allocation time, but my main concern is the memory required for each
> slice, which can be O(n) wrt the length of the whole tuple. I would like this to be constant (at
> least if there was a way around to the problem of deleting the underlying sequence).

If you really want a view into a tuple (or any sequence for that matter):

   from itertools import islice
   islice(iter(seq), start, end, step)

Then use the various functions in itertools to work with the resulting iterator 
(since the syntactic support for working with iterators is currently quite 
limited - slicing, concatenation and repetition are spelt with 
itertools.islice(), itertools.chain() and itertools.repeat(), rather than with 
their standard syntactic equivalents "[x:y:z]", "+" and "*").

The above approach does suffer from the problem of holding a reference to the 
original sequence, though.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at email.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://boredomandlaziness.skystorm.net



More information about the Python-list mailing list