Why does slice [:-0] return empty list in Python
Stumbled upon something slightly perplexing today while writing some unittests: blah = ['a', 'b', 'c'] blah[:-3] # [] blah[:-2] # ['a'] blah[:-1] # ['a', 'b'] blah[:-0] # [] Can't for the life of me figure out why blah[:-0] # [] should be the case, the pattern definitely seems to suggest that it should be ['a', 'b', 'c'] . Can anybody help to shed some light on why that is the case? Haven't been able to find mention in the docs as to why that is the case. -0 is 0 , and a slice that goes from the beginning of a list inclusive to index 0 non-inclusive is an empty list . Python doesn't treat -0