So I've been playing around with python and noticed something that seems a bit odd. The semantics of -1
in selecting from a list don't seem to be consistent.
So I have a list of numbers
ls = range(1000)
The last element of the list if of course ls[-1]
but if I take a sublist of that so that I get everything from say the midpoint to the end I would do
ls[500:-1]
but this does not give me a list containing the last element in the list, but instead a list containing everything UP TO the last element. However if I do
ls[0:10]
I get a list containing also the tenth element (so the selector ought to be inclusive), why then does it not work for -1
.
I can of course do ls[500:]
or ls[500:len(ls)]
(which would be silly). I was just wondering what the deal with -1 was, I realise that I don't need it there.
In list[first:last]
, last
is not included.
The 10th element is ls[9]
, in ls[0:10]
there isn't ls[10]
.