我知道str.count(sub)
会返回substring sub的出现次数。
但是我遇到了一个我无法理解的奇怪问题
我的代码如下:
str = 'helloworld'
print(str.count(''))
>>>11
输出令人费解。它为什么返回11?
如果''
表示任何字母,为什么不返回它的长度(10)?
我没有找到任何关于此的答案。
有人可以告诉我实施情况吗?
答案 0 :(得分:6)
''
并不意味着任何字符串,它意味着 no 字符串(也就是空字符串或0长度字符串)。严格地说,字符串中有无限数量的0长度字符串,但实际上,返回len(string) + 1
- 一个用于第一个字符之前,一个用于每个字符之后。
此方案在count.h
中已明确特殊:
if (sub_len == 0)
return (str_len < maxcount) ? str_len + 1 : maxcount;
当搜索字符串为空字符串时,默认返回len(string) + 1
。