Почему "12345".count('') возвращает 6, а не 5?
>>> '12345'.count('')
6
Почему это происходит? Если в этой строке всего 5 символов, почему функция count возвращает еще один?
Кроме того, существует ли более эффективный способ подсчета символов в строке?
Ответы
Ответ 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
.