10

For example:

>>> s = 'python'
>>> s.index('')
0
>>> s.index('p')
0
0

2 Answers 2

19

This is because the substring of length 0 starting at index 0 in 'python' is equal to the empty string:

>>> s[0:0]
''

Of course every substring of length zero of any string is equal to the empty string.

Sign up to request clarification or add additional context in comments.

Comments

6

You can see "python" as "the empty string, followed by a p, followed by fifteen more empty strings, followed by a y, followed by forty-two empty strings, ...".

Point being, empty strings don't take any space, so there's no reason why it should not be there.

The index method could be specified like this:

s.index(t) returns a value i such that s[i : i+len(t)] is equal to t

If you substitute the empty string for t, this reads: "returns a value i such that s[i:i] is equal to """. And indeed, the value 0 is a correct return value according to this specification.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.