为什么 '12345'.count('') return 是 6 而不是 5?

Why does '12345'.count('') return 6 and not 5?

>>> '12345'.count('')
6

为什么会这样?如果该字符串中只有 5 个字符,为什么计数函数会多返回一个字符?

此外,有没有更有效的方法来计算字符串中的字符数?

那是因为有六个不同的子串是空串:1之前,数字之间,5之后。

如果要计算字符数,请改用 len

>>> len("12345")
5

一根绳子剪五次能得到多少片?

---|---|---|---|---|---     -> 6 pieces

这里也发生了同样的事情。它也计算 5 之后的空字符串。

len('12345') 是你应该使用的。

最常用的方法是使用len('12345')。它 returns 给定字符串中的字符数 - 在本例中为 5.

count returns 对象在列表中出现的次数,因此如果计算 '' 的出现次数,您会得到 6 次,因为空字符串位于开头、结尾、以及每个字母之间。

使用 len 函数求出字符串的长度。

Count 和 Len 是两个截然不同的东西。 Len 只是打印字符串的长度(因此得名 'Len'),而 Count 遍历字符串或列表并给出对象出现的次数,它计算字符串的开头和结尾以及在每个字母之间。

这与 ''.count('') 到 return 1 而不是 0 有意义的原因相同。