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