Счетчик Python в коллекциях с примером

Содержание:

Anonim

Что такое счетчик Python?

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

Счетчик - это подкласс, доступный внутри класса словаря. Используя инструмент Python Counter, вы можете подсчитать пары ключ-значение в объекте, также называемом объектом хэш-таблицы.

Зачем использовать Python Counter?

Вот основные причины использования Python 3 Counter:

  • Счетчик хранит данные в неупорядоченной коллекции, как и объекты хеш-таблицы. Элементы здесь представляют собой ключи и счетчик как значения.
  • Это позволяет вам подсчитывать элементы в повторяемом списке.
  • Арифметические операции, такие как сложение, вычитание, пересечение и объединение, могут быть легко выполнены на счетчике.
  • Счетчик также может подсчитывать элементы из другого счетчика

В этом руководстве по Python вы узнаете:

  • Что такое счетчик Python?
  • Зачем использовать Python Counter?
  • Введение в Python Counter
  • Счетчик со строкой
  • Счетчик со списком
  • Счетчик со словарем
  • Счетчик с кортежем
  • Доступ, инициализация и обновление счетчиков
  • Удаление элемента из счетчика
  • Арифметическая операция на счетчике Python
  • Методы, доступные на счетчике Python
  • Переназначение счетчиков в Python
  • Получить и установить количество элементов с помощью счетчика

Введение в Python Counter

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

Синтаксис:

Counter(list)

Представьте, что у вас есть следующий список:

list1 = ['x','y','z','x','x','x','y', 'z']

В списке есть элементы x, y и z. Когда вы используете Counter в этом списке, он подсчитывает, сколько раз присутствуют x, y и z. Если счетчик используется в списке 1, результат должен быть примерно таким:

Counter({'x': 4, 'y': 2, 'z': 2})

Итак, у нас есть счетчик x как 4, y как 2 и z как 2.

Чтобы использовать Counter, нам нужно сначала импортировать его, как показано в приведенном ниже примере:

from collections import Counter

Вот простой пример, показывающий работу модуля Counter.

from collections import Counterlist1 = ['x','y','z','x','x','x','y', 'z']print(Counter(list1))

Выход:

Counter({'x': 4, 'y': 2, 'z': 2})

Счетчик со строкой

В Python все является объектом, и строка тоже является объектом. Строку Python можно создать, просто заключив символы в двойные кавычки. Python не поддерживает символьный тип. Они рассматриваются как строки длины один, также рассматриваемые как подстрока.

В приведенном ниже примере в Counter передается строка. Он возвращает формат словаря с парой ключ / значение, где ключ - это элемент, а значение - это счетчик. Он также рассматривает пространство как элемент и дает количество пробелов в строке.

Пример:

from collections import Countermy_str = "Welcome to Guru99 Tutorials!"print(Counter(my_str))

Выход:

Counter({'o': 3, ' ': 3, 'u': 3, 'e': 2, 'l': 2, 't': 2, 'r': 2, '9': 2, 'W': 1,'c': 1, 'm': 1, 'G': 1, 'T': 1, 'i': 1, 'a': 1, 's': 1, '!': 1})

Счетчик со списком

Список - это повторяемый объект, элементы которого заключены в квадратные скобки.

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

Например ['x', 'y', 'z', 'x', 'x', 'x', 'y', 'z']. Как только вы дадите списку счетчик, он даст вам количество каждого элемента в списке.

from collections import Counterlist1 = ['x','y','z','x','x','x','y','z']print(Counter(list1))

Выход:

Counter({'x': 4, 'y': 2, 'z': 2})

Счетчик со словарем

В словаре есть элементы в виде пары ключ / значение, и они записываются в фигурные скобки.

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

Например: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Функция счетчика попытается найти счетчик каждого ключа в данном словаре.

from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2}print(Counter(dict1))

Выход:

Counter({'x': 4, 'y': 2, 'z': 2})

Счетчик с кортежем

Кортеж - это набор объектов, разделенных запятыми в круглых скобках. Счетчик даст вам количество каждого элемента в заданном кортеже.

Как только кортеж передается в счетчик, он будет преобразован в объект хэш-таблицы, в котором элементы станут ключами, а значения будут подсчетом элементов из данного кортежа.

from collections import Countertuple1 = ('x','y','z','x','x','x','y','z')print(Counter(tuple1))

Выход:

Counter({'x': 4, 'y': 2, 'z': 2})

Доступ, инициализация и обновление счетчиков

Инициализация счетчика

Счетчик можно инициализировать, передав строковое значение, список, словарь или кортеж, как показано ниже:

from collections import Counterprint(Counter("Welcome to Guru99 Tutorials!")) #using stringprint(Counter(['x','y','z','x','x','x','y', 'z'])) #using listprint(Counter({'x': 4, 'y': 2, 'z': 2})) #using dictionaryprint(Counter(('x','y','z','x','x','x','y', 'z'))) #using tuple

Вы также можете инициализировать пустой счетчик, как показано ниже:

from collections import Counter_count = Counter()

Обновление счетчика

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

_count.update('Welcome to Guru99 Tutorials!')

Окончательный код:

from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print(_count)

Результат:

Counter({'o': 3, ' ': 3, 'u': 3, 'e': 2, 'l': 2, 't': 2, 'r': 2, '9': 2, 'W': 1,'c': 1, 'm': 1, 'G': 1, 'T': 1, 'i': 1, 'a': 1, 's': 1, '!': 1})

Доступ к счетчику

Чтобы получить значения из счетчика, вы можете сделать следующее:

from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print('%s : %d' % ('u', _count['u']))print('\n')for char in 'Guru':print('%s : %d' % (char, _count[char]))

Выход:

u : 3G : 1u : 3r : 2u : 3

Удаление элемента из счетчика

Чтобы удалить элемент из Counter, вы можете использовать del, как показано в примере ниже:

Пример:

from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2}del dict1["x"]print(Counter(dict1))

Выход:

Counter({'y': 2, 'z': 2})

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

Арифметические операции, такие как сложение, вычитание, пересечение и объединение, могут выполняться на счетчике, как показано в примере ниже:

Пример:

from collections import Countercounter1 = Counter({'x': 4, 'y': 2, 'z': -2})counter2 = Counter({'x1': -12, 'y': 5, 'z':4 })#Additioncounter3 = counter1 + counter2 # only the values that are positive will be returned.print(counter3)#Subtractioncounter4 = counter1 - counter2 # all -ve numbers are excluded.For example z will be z = -2-4=-6, since it is -ve value it is not shown in the outputprint(counter4)#Intersectioncounter5 = counter1 & counter2 # it will give all common positive minimum values from counter1 and counter2print(counter5)#Unioncounter6 = counter1 | counter2 # it will give positive max values from counter1 and counter2print(counter6)

Выход:

Counter({'y': 7, 'x': 4, 'z': 2})Counter({'x1': 12, 'x': 4})Counter({'y': 2})Counter({'y': 5, 'x': 4, 'z': 4})

Методы, доступные на счетчике Python

Есть несколько важных методов, доступных с Counter, вот их список:

  • elements () : этот метод вернет вам все элементы с count> 0. Элементы с 0 или -1 не будут возвращены.
  • most_common (value): этот метод вернет вам наиболее распространенные элементы из списка Counter.
  • subtract (): этот метод используется для вычитания элементов из другого счетчика.
  • update (): этот метод используется для обновления элементов из другого счетчика.

Пример: elements ()

from collections import Countercounter1 = Counter({'x': 5, 'y': 2, 'z': -2, 'x1':0})_elements = counter1.elements() # will give you all elements with positive value and count>0for a in _elements:print(a)

Выход:

xxxxxyy

Пример: most_common (значение)

from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})common_element = counter1.most_common(2) # The dictionary will be sorted as per the most common element first followed by next.print(common_element)common_element1 = counter1.most_common() # if the value is not given to most_common , it will sort the dictionary and give the most common elements from the start.The last element will be the least common element.print(common_element1)

Выход:

[('y', 12), ('x', 5)][('y', 12), ('x', 5), ('x1', 0), ('z', -2)]

Пример: вычитание ()

from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.subtract(counter2)print(counter1)

Выход:

Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})

Пример: update ()

from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.update(counter2)print(counter1)

Выход:

Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})

Переназначение счетчиков в Python

Вы можете переназначить счетчик счетчика, как показано ниже:

Допустим, у вас есть словарь: {'x': 5, 'y': 12, 'z': -2, 'x1': 0}

Вы можете изменить количество элементов, как показано ниже:

from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter1['y'] = 20print(counter1)

Вывод: после выполнения вы увидите, что счетчик y изменился с 12 на 20.

Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})

Получить и установить количество элементов с помощью счетчика

Чтобы получить количество элементов с помощью счетчика, вы можете сделать следующее:

from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y']) # this will give you the count of element 'y'

Выход:

12

Чтобы установить количество элементов, вы можете сделать следующее:

from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y'])counter1['y'] = 20counter1['y1'] = 10print(counter1)

Выход:

12Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})

Резюме:

  • Счетчик - это контейнер, который будет содержать счетчик каждого из элементов, присутствующих в контейнере.
  • Counter - это подкласс, доступный внутри класса словаря.
  • Используя инструмент Python Counter, вы можете подсчитать пары ключ-значение в объекте, также называемом объектом хэш-таблицы.
  • Счетчик хранит данные в неупорядоченной коллекции, как и объекты хеш-таблицы. Элементы здесь представляют собой ключи и счетчик как значения.
  • Это позволяет вам подсчитывать элементы в повторяемом списке.
  • Арифметические операции, такие как сложение, вычитание, пересечение и объединение, могут быть легко выполнены на счетчике.
  • Счетчик также может подсчитывать элементы из другого счетчика.
  • Важными методами, доступными в Counter, являются elements (), most_common (значение), subtract () и update ().
  • Счетчик можно использовать для строки, списка, словаря и кортежа.