Count: примеры (PYTHON)

Использование функции count в языке Python
Раздел: Списки/строки, Поиск в коллекциях
count(value): int

Описание функции count в Python

Метод count() доступен для строк, списков, кортежей и байтовых последовательностей. Он выполняет подсчет вхождений указанного элемента или подстроки.

Для строк используется синтаксис: str.count(sub[, start[, end]]). Параметр sub - подстрока для поиска. Аргументы start и end определяют диапазон поиска, аналогично срезам. Метод возвращает целое число вхождений.

Для списков и кортежей синтаксис проще: list.count(x) или tuple.count(x), где x - искомый элемент. Поиск выполняется по полному совпадению.

Функция не поддерживает регулярные выражения и выполняет чувствительный к регистру поиск для строк. При отсутствии вхождений возвращает 0.

Основные примеры использования

Подсчет в строках

text = "программирование на Python и программирование на Java"
print(text.count("программирование"))
print(text.count("Python"))
print(text.count("и", 20, 40))
2
1
1

Подсчет в списках

numbers = [1, 2, 3, 1, 2, 1, 4, 5]
print(numbers.count(1))
print(numbers.count(10))
3
0

Подсчет в кортежах

values = (True, False, True, True, None)
print(values.count(True))
print(values.count(None))
3
1

Похожие возможности в Python

collections.Counter - специализированный словарь для подсчета хешируемых объектов. Подходит для массового подсчета частоты элементов.

from collections import Counter
data = ['a', 'b', 'a', 'c', 'b', 'a']
counter = Counter(data)
print(counter['a'])
3

str.find() и str.index() - методы поиска подстрок с возвратом позиции. Полезны, когда нужна позиция вхождения, а не количество.

re.findall() - функция модуля регулярных выражений. Используется для сложных шаблонов поиска с поддержкой регулярных выражений.

Аналоги функции в других языках

JavaScript

// Для строк
let text = "hello world";
let count = (text.match(/l/g) || []).length;
console.log(count);

// Для массивов
let arr = [1, 2, 1, 3, 1];
let arrCount = arr.filter(x => x === 1).length;
console.log(arrCount);
3
3

Java

// Для строк
String str = "Java programming";
long count = str.chars().filter(ch -> ch == 'a').count();
System.out.println(count);

// Для коллекций
List list = Arrays.asList(1, 2, 1, 3);
int freq = Collections.frequency(list, 1);
System.out.println(freq);
3
2

SQL

SELECT COUNT(*) FROM table WHERE column = 'value';

PHP

// Для строк
$count = substr_count("hello world", "l");
echo $count;

// Для массивов
$array = [1, 2, 1, 3];
$count_values = array_count_values($array);
echo $count_values[1];
3
2

Распространенные ошибки

Смешение типов данных

# Неправильно: поиск числа в строке без преобразования
values = [1, 2, 3, '1', '2']
print(values.count('1'))
print(values.count(1))
1
1

Число 1 и строка '1' считаются разными значениями.

Регистрозависимость строк

text = "Python PYTHON python"
print(text.count("python"))
1

Неправильные границы поиска

text = "abcdefgh"
print(text.count("cde", 5, 7))  # Диапазон не содержит искомую подстроку
0

Изменения в последних версиях Python

В Python 3.10 были оптимизированы внутренние механизмы работы метода count() для строк, что улучшило производительность на 10-15% для некоторых случаев.

Для байтовых массивов (bytearray) метод count() был полностью стабилизирован и теперь работает аналогично строковому методу.

Расширенные примеры применения

Подсчет пересекающихся подстрок

Пример python
# count() не считает пересекающиеся вхождения
text = "aaaa"
print(text.count("aa"))

# Альтернативный способ с пересечениями
import re
print(len(re.findall(r'(?=aa)', text)))
2
3

Подсчет в многомерных структурах

Пример python
matrix = [[1, 2], [1, 3], [1, 4]]
total = sum(row.count(1) for row in matrix)
print(total)
3

Анализ текстовых данных

Пример python
def analyze_text(text, keywords):
    return {word: text.lower().count(word) for word in keywords}

result = analyze_text("Python и Java, Python или JavaScript", 
                     ["python", "java", "javascript"])
print(result)
{'python': 2, 'java': 1, 'javascript': 1}

Работа с байтовыми последовательностями

Пример python
data = b'\x00\x01\x00\x02\x00\x00'
print(data.count(b'\x00'))
print(data.count(b'\x00', 2, 5))
4
2

питон count function comments

En
Count Count occurrences