Velocity Reviews

Velocity Reviews (
-   Python (
-   -   Re: Negative array indicies and slice() (

Mark Lawrence 10-29-2012 10:10 AM

Re: Negative array indicies and slice()
On 29/10/2012 02:31, Andrew Robinson wrote:
> Ok, hopefully this is better. I love my own e-mail editor...
> I can see that the slice() function can pass in arbitrary arguments.
> I'm not sure for lists, which is what the range is applied to, why an
> argument like "a" would be part of a slice.
> I *really* don't see what the advantage of a slice class is over a mere
> list in the order of start, stop, step eg: [ 1,4,9 ]
> In a dictionary, where "a" could be a key -- I wasn't aware that there
> was a defined order that the idea of slice could apply to.
> When I look at the documentation,
> The only thing that slice has which is special, is that the the length
> of the sequence can be given -- and the start and stop index are either
> trimmed or an error (exception???) is thrown.
> Where is the information on the more general case of slice()? :-\
> I am thinking, can one use the 'super' type of access, to override --
> within the list object itself -- the __getitem__ method, and after
> pre-processing -- call the shadowed method with the modified
> parameters? That would allow me to use the normal a[-4:6] notation,
> without having to write a wrapper class that must be explicitly called.
> I'm thinking something like,
> PyListObject.__getitem__= lambda self, slice: ....
> --Andrew.

I suggest that you go back and read the tutorial about slicing. I say
this because we've started with negative array indicies and slice() (but
Python arrays haven't been mentioned :), then moved onto (x)range and
now lists, dictionaries and the C API for slices.

An alternative is to tell us precisely what you're trying to achieve.
The odds are that there's a simple answer waiting in the wings for a
simple question.


Mark Lawrence.

All times are GMT. The time now is 07:03 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.