Рубрики
Без рубрики

Счетчик в Python

Счетчик представляет собой подкласс Dict и является частью модуля коллекций. Используется для подсчета Hashable объектов.

Автор оригинала: Pankaj Kumar.

Счетчик – это подкласс Диктовать и является частью Коллекции модуль. Используется для подсчета Hashable объектов.

Это неупорядоченная коллекция, где элементы хранятся в виде ключей словаря, и их количество – это значения.

Счетчик объекта формата: {element1: count1, element2: count2}

Элементы отсчитаны из ИТЕРИТЕЛЬНО или инициализирован из другого сопоставления (или счетчика)

Инициализация Счетчик Объект выполняется с использованием Счетчик () вызов.

Мы также можем пройти от вызова и получить соответствующий сопоставленный объект.

>>> from collections import Counter
>>> # Empty Counter object
>>> c = Counter()
>>> c
Counter()

>>> # Tuple of values
>>> d = Counter(a=1, b=2, c=1)
>>> d
Counter({'b': 2, 'a': 1, 'c': 1})

>>> # Pass a list, which is an iterable
>>> e = Counter(['a', 'b', 'a', 'c'])
>>> e
Counter({'a': 2, 'b': 1, 'c': 1})

>>> # Pass a string, also an iterable
>>> f = Counter('red-dish')
>>> f
Counter({'d': 2, 'r': 1, 'e': 1, '-': 1, 'i': 1, 's': 1, 'h': 1})

>>> # Pass a Dictionary
>>> g = Counter({'a': 10, 'b': 11})
>>> g
Counter({'b': 11, 'a': 10})

Обратите внимание, что когда отображается объект Counter, пары значения клавиш отображаются в порядке убыточного количества.

Учетные объекты имеют интерфейс словаря, за исключением того, что они возвращают нулевое количество для отсутствия предметов вместо поднятия KeyError Отказ

Счетные методы

1. Получите счет отдельных элементов

Отдельные значения элементов доступны так же, как и у словаря, что означает, что counter_object [ключ] дает счет ключ Отказ

>>> c = Counter(a=1, b=2, c=1)
>>> c
Counter({'b': 2, 'a': 1, 'c': 1})
>>> c['b']
2
>>> c['d'] # Does not give KeyError, unlike a Dictionary
0

2. Установите счет элементов

Чтобы установить счет элемента, используйте counter_object [ключ] Отказ Если ключ Не существует, он добавляется в счетчик счетчиков, а также новый счет.

>>> c = Counter(a=1, b=2, c=1)
>>> c
Counter({'b': 2, 'a': 1, 'c': 1})
>>> c['d'] = 4
>>> c
Counter({'d': 4, 'b': 2, 'a': 1, 'c': 1})

3. Удалить элементы с счетчика

Чтобы удалить ключ от объекта счетчика, используйте del counter_object [ключ] Отказ

>>> del c['d']
>>> c
Counter({'b': 2, 'a': 1, 'c': 1})

4. Элементы ()

Этот метод возвращает итератор над элементами, значения которых повторяются столько раз, сколько их количество. Этот метод игнорирует Все элементы, которые имеют их счет меньше одного.

>>> c
Counter({'b': 2, 'a': 1, 'c': 1})
>>> c['d'] = -1
>>> c
>>> c.elements()

>>> type(c.elements())

>>> for i in c.elements():
...     print(i)
...
a
b
b
c
>>> list(c.elements())
['a', 'b', 'b', 'c']

>>> c['d'] = -1
>>> c
Counter({'b': 2, 'a': 1, 'c': 1, 'd': -1})
>>> # Ignores d since count[d] < 1
>>> list(c.elements())
['a', 'b', 'b', 'c']

5. MOST_COMMON (N)

Это возвращает список N наиболее распространенные элементы и их считаются от наиболее распространенного до наименее. Если N опущен или Нет , most_common () Возвращает Все Элементы в счетчике. Элементы с равным количеством упорядочены произвольно.

>>> c
Counter({'b': 2, 'a': 1, 'c': 1, 'd': -1})
>>> c.most_common()
[('b', 2), ('a', 1), ('c', 1), ('d', -1)]
>>> c.most_common(2)
[('b', 2), ('a', 1)]

6. Вычтите (потенциал/сопоставление)

Это возвращает отображение/утечку после вычитания содержимого двух поематов/сопоставлений. Элементы не заменяются, и только их количество вычтены.

>>> a = Counter('redblue')
>>> a
Counter({'e': 2, 'r': 1, 'd': 1, 'b': 1, 'l': 1, 'u': 1})
>>> b = Counter('blueorange')
>>> b
Counter({'e': 2, 'b': 1, 'l': 1, 'u': 1, 'o': 1, 'r': 1, 'a': 1, 'n': 1, 'g': 1})

>>> # Subtracts b from a and updates a accordingly
>>> a.subtract(b)
>>> a
Counter({'d': 1, 'r': 0, 'e': 0, 'b': 0, 'l': 0, 'u': 0, 'o': -1, 'a': -1, 'n': -1, 'g': -1})

7. Обновление (Iterable/Mapping)

Это похоже на Вычитание () , но добавляет только количество вместо того, чтобы вычитаться их.

>>> a = Counter('12321')
>>> b = Counter('23432')
>>> a
Counter({'1': 2, '2': 2, '3': 1})
>>> b
Counter({'2': 2, '3': 2, '4': 1})

>>> # Add counts into a
>>> a.update(b)
>>> a
Counter({'2': 4, '3': 3, '1': 2, '4': 1})

Другие счетчики () методы

  • Counter.celear () используется для сброса количества всех элементов в счетчике
  • Counter.values () Возвращает Диктовые значения объект, используемый для других методов, таких как сумма () Чтобы получить общее количество всех элементов.
  • Список (счетчик) используется для перечисления всех уникальных элементов
  • Установить (счетчик) преобразует счетчик в набор
  • Counter.items () Возвращает список (ключ, значение) Пары на прилавке.
  • счетчик () Удаляет все элементы с нулевым или отрицательным количеством

Арифметические операции на счетчиках

Мы можем использовать основные арифметические операции на счетчиках, как сложение, вычитание, объединение и пересечение.

>>> c = Counter(a=3, b=1)
>>> d = Counter(a=1, b=2)
>>> c + d
Counter({'a': 4, 'b': 3})

>>> # Subtract c, d while keeping only positive counts
>>> c - d
Counter({'a': 2})

>>> # Intersection of c, d (Min(c, d))
>>> c & d
Counter({'a': 1, 'b': 1})

>>> # Union of c, d (Max (c, d))
>>> c | d
Counter({'a': 3, 'b': 2})

Заключение

Мы узнали о Counts Class, который дает нам объекты, имеющие сопоставление к каждому элементу на его счет. Мы также узнали о некоторых методах, которые коллекции. Counter предоставляет нам, для манипулирования счетчиками объектов.

Рекомендации

Документация коллекции Python: https://docs.cython.org/2/Library/collections.html.

Статья journaldev на счетчике Python: https://www.journaldev.com/20806/python-counter-python-collections-counter.