Search code examples
pythonlistslicenegative-number

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.


Solution

  • -0 is 0, and a slice that goes from the beginning of a list inclusive to index 0 non-inclusive is an empty list.