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

时间:2015-06-19 22:38:48

标签: python python-3.x count

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

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

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

6 个答案:

答案 0 :(得分:109)

count返回一个对象在列表中出现的次数,因此如果计算''的出现次数,则得到6,因为空字符串位于开头,结尾和每个字母之间。

使用len函数查找字符串的长度。

答案 1 :(得分:28)

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

如果您想计算字符,请使用len代替:

>>> len("12345")
5

答案 2 :(得分:25)

如果你剪了五次琴弦,会得到多少件?

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

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

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

答案 3 :(得分:6)

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

答案 4 :(得分:1)

伯爵和莱恩是两件截然不同的事。 Len只是打印字符串的长度(因此命名为'Len'),而Count遍历字符串或列表,并给出对象出现的次数,它计算字符串的开头和结尾以及之间每封信。

答案 5 :(得分:1)

这与''.count('')返回1而不是0的原因相同。