Подтвердить что ты не робот

Почему "12345".count('') возвращает 6, а не 5?

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

Почему это происходит? Если в этой строке всего 5 символов, почему функция count возвращает еще один?

Кроме того, существует ли более эффективный способ подсчета символов в строке?

4b9b3361

Ответ 1

count возвращает количество раз, когда объект появляется в списке, поэтому, если вы подсчитываете вхождения '', вы получаете 6, потому что пустая строка находится в начале, конце и между каждой буквой.

Используйте функцию len, чтобы найти длину строки.

Ответ 2

Это потому, что есть шесть разных подстрок, которые являются пустой строкой: до 1, между номерами и после 5.

Если вы хотите подсчитать символы, используйте len вместо этого:

>>> len("12345")
5

Ответ 3

Сколько штук вы получаете, если вы вырезаете строку пять раз?

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

То же самое происходит и здесь. Он также подсчитывает пустую строку после 5.

len('12345') - это то, что вы должны использовать.

Ответ 4

Наиболее распространенным способом является использование len('12345'). Он возвращает количество символов в заданной строке - в этом случае 5.

Ответ 5

Граф и Лен - две разные вещи. Лен просто печатает длину строки (отсюда и имя "Лен" ), а граф выполняет итерацию по строке или списку и дает вам количество раз, когда происходит объект, который подсчитывает начало и конец строки, а также между ними каждая буква.

Ответ 6

По той же причине, почему имеет смысл ''.count('') возвращать 1, а не 0.