Python: количество вхождений в списке
Метод python count() подсчитывает количество вхождений элемента в списке и возвращает найденое значение.
list.count(x)
Метод count() принимает один аргумент x, значение которое нужно найти. Данный метод возвращает количество вхождений элемента в список.
# объявление списка website_list = ['google.com','includehelp.com', 'linkedin.com', 'google.com'] # подсчет вхождений 'google.com' count = website_list.count('google.com') print('google.com found',count,'times.') # подсчет вхождений 'linkedin.com' count = website_list.count('linkedin.com') print('linkedin.com found',count,'times.')
google.com found 2 times. linkedin.com found 1 times.
Метод count() также работает с кортежем
# объявление кортежа sample_tuple = ((1,3), (2,4), (4,6)) # условные вхождения (1,2) count = sample_tuple.count((1,2)) print('(1,2) found',count,'times.') # условное вхождение (1,3) count = sample_tuple.count((1,3)) print('(1,3) found',count,'times.')
(1,2) found 0 times. (1,3) found 1 times.
Подсчет вхождений элемента в списке Python
В этом посте будет обсуждаться, как подсчитывать количество вхождений элемента в списке Python.
1. Использование count() функция
Чтобы получить общее количество вхождений элемента в списке, вы можете использовать count() функция.
if __name__ == ‘__main__’ :
ints = [ 1 , 2 , 3 , 4 , 2 , 1 ]
freq = ints . count ( item )
print ( freq ) # 2
2. Использование collections.Counter
Чтобы получить общее количество вхождений каждого элемента в списке, вы можете использовать Counter класс из collections модуль. Это рекомендуемое решение, когда вам нужно подсчитать несколько элементов из списка.
Чтобы получить общее количество вхождений для любого отдельного элемента в списке, вы можете использовать функцию get() функцию, как показано ниже:
Подсчет количества элементов в словаре Python
Операции len(dict) возвращает количество элементов в словаре dict .
len(dictview) так же возвращает количество элементов в словаре, если dictview является представлением словаря dict , таким как dict.keys() , dict.values() и dict.items() .
Примеры получения длины словаря (количества элементов в словаре):
>>> x = "one": 1, "two": 2, "three": 3, "four": 4> >>> len(x) # 4 >>> keys = x.keys() >>> len(keys) # 4 >>> values = x.values() >>> len(values) # 4 >>> items = x.items() >>> len(items) # 4
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Представления словарей dict.keys, dict.values и dict.items
- Исходный словарь для представления dictview.mapping
- Получение списка ключей словаря list(dict)
- Количество элементов в словаре len(dict)
- Доступ к значению словаря по ключу dict[key]
- Добавление/изменение значения словаря по ключу key
- Удаление значения словаря по ключу
- Проверка наличия/отсутствия ключа key в словаре dict
- Проверка наличия/отсутствия значения value в словаре Python
- Проверка наличия/отсутствия пары (key, value) в словаре dict
- Итерирование по ключам и значениям словаря Python
- Метод dict.clear(). Очистить словарь
- Метод dict.copy(), копия словаря
- Метод dict.fromkeys(), словарь с ключами по умолчанию
- Метод dict.get(), значение по умолчанию если ключа нет
- Метод dict.items(), список кортежей
- Метод dict.keys(), список ключей словаря
- Метод dict.values(), список значений словаря
- Метод dict.pop()
- Метод dict.popitem(), получить пару ключ/значение
- Метод dict.setdefault(), получает/вставляет значение ключа
- Метод dict.update(), обновление/дополнение словаря
- Объединение двух словарей в новый словарь Python
- Сортировка словаря по значению и/или ключу
- Обратный порядок/реверс словаря reversed(dict)
- Генератор словаря и его использование
- Фильтр словаря по ключам и/или значениям
- Словарь как фабрика функций
ХОЧУ ПОМОЧЬ
ПРОЕКТУ
Подсчет количества элементов в коллекции
Для подсчета вхождений значения в массиве numpy. Это будет работать так:
import numpy as np a=np.array([0,3,4,3,5,4,7]) print(np.sum(a==3)) # 2
Логика заключается в том, что Булево выражение создает массив, в котором все вхождения запрошенных значений равны 1, а все остальные равны нулю. Таким образом, суммируя их, мы получим количество случаев вхождения. Это работает для массивов любой формы или типа. Не забудьте убедиться, что вы установили пакет NumPy .
Есть два метода, которые используют для подсчета вхождения всех уникальных значений в numpy:
- уникальный — автоматически выравнивает многомерные массивы
- бинарный подсчет — работает только с одномерными массивами, содержащими только положительные целые числа
unique, counts = np.unique(a, return_counts=True) print(unique , counts) # counts[i] равняется вхождениям unique[i] в a # [0 3 4 5 7] [1 2 2 1 1] bin_count=np.bincount(a) print(bin_count) # bin_count[i] равняется вхождениям i в a # [1 0 0 2 2 1 0 1]
Если ваши данные представляют собой массивы numpy, как правило, гораздо быстрее использовать методы numpy, чем преобразовывать данные в универсальные методы.
Подсчет всех вхождений всех элементов в итерируемом: collection.Counter
from collections import Counter c = Counter(["a", "b", "c", "d", "a", "b", "a", "c", "d"]) c # Counter() c["a"] # 3 c[7] # не в списке (7 входило 0 раз!) # 0
collections.Counter может быть использован для любого итератора и подсчитывает каждое вхождение для каждого элемента.
Примечание: Одно исключение , если dict или другой collections.Mapping -как класса дается, то он не будет считать их, а это создает счетчик с этими значениями:
Примечание: Одно исключение , если dict или другой collections.Mapping -как класса дается, то он не будет считать их, а это создает счетчик с этими значениями:
Counter() # Counter() Counter() # Counter не проверяет значения типа int # Counter()
Подсчет вхождений подстроки в строку: str.count
astring = 'thisisashorttext' astring.count('t') # 4
Это работает даже для подстрок длиннее одного символа:
astring.count('th') # 1 astring.count('is') # 2 astring.count('text') # 1
которое не было бы возможно с collections.Counter , который только подсчитывает одиночные символы:
from collections import Counter Counter(astring) # Counter()
Подсчет вхождений одного элемента в последовательности: list.count() и tuple.count()
alist = [1, 2, 3, 4, 1, 2, 1, 3, 4] alist.count(1) # 3 atuple =('bear', 'weasel', 'bear', 'frog') atuple.count('bear') # 2 atuple.count('fox') # 0
Получение наиболее распространенного значения: collection.Counter
Подсчет ключи от Mapping не представляется возможным с collections.Counter , но мы можем посчитать значения:
from collections import Counter adict = Counter(adict.values()) # Counter()
Наиболее распространенные элементы доступны с помощью метода most_common :
# сортируем их от наиболее распространенного # до наименее распространенного значения: Counter(adict.values()).most_common() # [(5, 3), (2, 2), (3, 1)] # получим наиболее распространенное значение Counter(adict.values()).most_common(1) # [(5, 3)] # получим 2 самых распространенных значения Counter(adict.values()).most_common(2) # [(5, 3), (2, 2)]
