查看以下代码,并请解释为什么该str.count('')方法和len(str)函数给出两个不同的输出。
str.count('')
len(str)
a='' print(len(a)) print(a.count(''))
输出:
0 1
str.count() 计算子字符串的非重叠出现次数:
str.count()
返回substring sub 的不重叠出现的次数。
在字符串中恰好有一个这样的子字符串''出现的位置'':就在开头。因此计数 应该 返回1。
''
1
一般来说,空字符串将匹配给定字符串中的 所有位置 ,包括开始和结束处的正确 位置 ,因此计数应 始终 为长度加1:
>>> (' ' * 100).count('') 101
这是因为空字符串被认为存在于字符串的所有字符之间。对于字符串长度2,有3个空字符串;开头是一个,两个字符之间是一个,结尾是一个。
是的,结果是不同的,而且它们是完全正确的。