lib*_*ral 5 python string count python-3.x
请查看以下代码,并解释为什么str.count('')方法和len(str)函数提供两个不同的输出.
a=''
print(len(a))
print(a.count(''))
Run Code Online (Sandbox Code Playgroud)
输出:
0
1
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 12
str.count() 计算子字符串的非重叠出现次数:
返回substring sub的非重叠出现次数.
在字符串中只''出现一个子字符串的位置'':正好在开头.所以计数应该返回1.
一般来说,空字符串将匹配给定字符串中的所有位置,包括在开头和结尾处,因此计数应始终为长度加1:
>>> (' ' * 100).count('')
101
Run Code Online (Sandbox Code Playgroud)
那是因为字符串的所有字符之间都存在空字符串; 对于字符串长度为2,有3个空字符串; 一个在开头,一个在两个字符之间,一个在最后.
所以,是的,结果是不同的,它们是完全正确的.