Что такое счетчик Python?
Счетчик Python — это контейнер, в котором будет храниться количество элементов, присутствующих в контейнере. Счетчик — это подкласс, доступный внутри словарного класса.
Счетчик — это подкласс, доступный внутри словарного класса. Используя инструмент Python Counter, вы можете подсчитать пары ключ-значение в объекте, также называемом объектом хеш-таблицы.
Зачем использовать Python Counter?
Вот основные причины использования счетчика Python 3:
- Счетчик хранит данные в неупорядоченной коллекции, точно так же как объекты хеш-таблицы. Элементы здесь представляют ключи и количество в качестве значений.
- Позволяет считать элементы в итерируемом списке.
- Арифметические операции, такие как сложение, вычитание, пересечение и объединение, могут быть легко выполнены на счетчике.
- Счетчик также может считать элементы из другого счетчика.
В этом уроке по Python вы узнаете:
- Что такое счетчик Python?
- Зачем использовать Python Counter?
- Введение в Python Counter
- Счетчик со строкой
- Счетчик со списком
- Счетчик со словарем
- Счетчик с кортежем
- Доступ, инициализация и обновление счетчиков
- Удаление элемента из счетчика
- Арифметическая операция на счетчике Python
- Методы, доступные на счетчике Python
- Переназначение счетчиков в Python
- Получить и установить количество элементов с помощью счетчика
Введение в Python Counter
Счетчик Python принимает на вход список, кортеж, словарь, строку, которые являются итеративными объектами, и он выдаст вам вывод, который будет иметь счетчик каждого элемента.
Синтаксис:
Counter(list)
Предположим, у вас есть следующий список:
list1 = ['x','y','z','x','x','x','y', 'z']
В списке есть элементы x, y и z. Когда вы используете Counter в этом списке, он будет подсчитывать, сколько раз x, y и z присутствуют. Вывод, если счетчик используется в list1, должен выглядеть примерно так:
Counter({'x': 4, 'y': 2, 'z': 2})
Таким образом, мы имеем счет x как 4, y как 2 и z как 2.
Чтобы использовать Counter, нам нужно сначала импортировать его, как показано в приведенном ниже примере:
from collections import Counter
Вот простой пример, который показывает работу модуля Counter.
from collections import Counter list1 = ['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 Counter my_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 Counter list1 = ['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}. Функция Counter попытается найти количество каждого ключа в данном словаре.
from collections import Counter dict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2} print(Counter(dict1))
Вывод:
Counter({'x': 4, 'y': 2, 'z': 2})
Счетчик с кортежем
Кортеж представляет собой набор объектов, разделенных запятыми внутри круглых скобок. Счетчик даст вам счетчик каждого из элементов в данном кортеже.
Как только кортеж передается в счетчик, он будет преобразован в объект хеш-таблицы, в котором элементы станут ключами, а значения будут подсчитывать количество элементов из данного кортежа.
from collections import Counter tuple1 = ('x','y','z','x','x','x','y','z') print(Counter(tuple1))
Вывод:
Counter({'x': 4, 'y': 2, 'z': 2})
Доступ, инициализация и обновление счетчиков
Счетчик инициализации
Счетчик может быть инициализирован передачей строкового значения, списка, словаря или кортежа, как показано ниже:
from collections import Counter print(Counter("Welcome to Guru99 Tutorials!")) #using string print(Counter(['x','y','z','x','x','x','y', 'z'])) #using list print(Counter({'x': 4, 'y': 2, 'z': 2})) #using dictionary print(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 : 3 G : 1 u : 3 r : 2 u : 3
Удаление элемента из счетчика
Чтобы удалить элемент из Counter, вы можете использовать del, как показано в примере ниже:
Пример:
from collections import Counter dict1 = {'x': 4, 'y': 2, 'z': 2} del dict1["x"] print(Counter(dict1))
Вывод:
Counter({'y': 2, 'z': 2})
Арифметическая операция на счетчике Python
Арифметическая операция, такая как сложение, вычитание, пересечение и объединение, может быть выполнена на счетчике, как показано в примере ниже:
Пример:
from collections import Counter counter1 = Counter({'x': 4, 'y': 2, 'z': -2}) counter2 = Counter({'x1': -12, 'y': 5, 'z':4 }) #Addition counter3 = counter1 + counter2 # only the values that are positive will be returned. print(counter3) #Subtraction counter4 = 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 output print(counter4) #Intersection counter5 = counter1 & counter2 # it will give all common positive minimum values from counter1 and counter2 print(counter5) #Union counter6 = counter1 | counter2 # it will give positive max values from counter1 and counter2 print(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 () : Этот метод вернет вам все элементы с количеством> 0. Элементы с 0 или -1 счетом возвращаться не будут.
- most_common (value): этот метод вернет вам наиболее распространенные элементы из списка Counter.
- subtract (): этот метод используется для вычитания элементов из другого счетчика.
- update (): этот метод используется для обновления элементов из другого счетчика.
Пример: elements ()
from collections import Counter counter1 = Counter({'x': 5, 'y': 2, 'z': -2, 'x1':0}) _elements = counter1.elements() # will give you all elements with positive value and count>0 for a in _elements: print(a)
Вывод:
x x x x x y y
Пример: most_common (значение)
from collections import Counter counter1 = 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 Counter counter1 = 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})
Пример: обновление ()
from collections import Counter counter1 = 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 Counter counter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0}) counter1['y'] = 20 print(counter1)
Вывод: после выполнения вы увидите, что счетчик у изменен с 12 на 20
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Получить и установить количество элементов с помощью счетчика
Чтобы получить количество элементов с помощью счетчика, вы можете сделать следующее:
from collections import Counter counter1 = 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 Counter counter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0}) print(counter1['y']) counter1['y'] = 20 counter1['y1'] = 10 print(counter1)
Вывод:
12 Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})
Резюме:
- Счетчик — это контейнер, в котором будет храниться количество элементов, присутствующих в контейнере.
- Counter — это подкласс, доступный внутри словарного класса.
- Используя инструмент Python Counter, вы можете подсчитать пары ключ-значение в объекте, также называемом хеш-таблицей.
- Счетчик хранит данные в неупорядоченной коллекции, точно так же как объекты хеш-таблицы. Элементы здесь представляют ключи и количество в качестве значений.
- Позволяет считать элементы в итерируемом списке.
- Арифметические операции, такие как сложение, вычитание, пересечение и объединение, могут быть легко выполнены на счетчике.
- Счетчик также может считать элементы из другого счетчика.
- Важными методами, доступными в Counter, являются elements (), most_common (value), subtract () и update ().
- Счетчик может использоваться для строки, списка, словаря и кортежа.