>> list [-3:3]
>> which is an error but is not reported as such, rathger it returns an 
>> empty list!
>
> I don't think this is an error, and whether it returns an empty list or 
> not depends on the length of the list:

I stand corrected, and yes when you think about it, it makes sense.

> print i, range(i)[-3:3]
> 0 []
> 1 [0]
> 2 [0, 1]
> 3 [0, 1, 2]
> 4 [1, 2]
> 5 [2]
> 6 []

[-3:3] is not an error as such it just doesn't make sense for longer lists
since -3 is after 3. But for short lists -3 sits before 3 so the slice 
between
them is valid.

Interesting, and shows the danger of relying on inaccurate analagies
like my circular list. It works in many cases but not all!

Thanks Roel.

Alan G
Author of the learn to program web tutor
http://www.freenetpages.co.uk/hp/alan.gauld


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to