为什么每个字符串都有空字符串?

10 投票
2 回答
2720 浏览
提问于 2025-04-16 13:04

例如:

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

2 个回答

6

你可以把 "python" 看作是“一个空字符串,后面跟着一个 p,再后面是十五个空字符串,接着是一个 y,然后是四十二个空字符串,……”。

重点是,空字符串不占任何空间,所以它在这里存在是完全合理的。

index 方法可以这样理解:

s.index(t) 返回一个值 i,使得 s[i : i+len(t)] 等于 t

如果你把空字符串代入 t,那么这句话可以理解为:“返回一个值 i,使得 s[i:i] 等于 ""”。而实际上,值 0 确实是符合这个定义的正确返回值。

19

这是因为在'python'这个字符串中,从索引0开始的长度为0的子字符串是空字符串:

>>> s[0:0]
''

当然,任何字符串的长度为0的子字符串都是空字符串。

撰写回答