Python Лічильник у колекціях із прикладом
Що таке Python Лічильник?
Python Лічильник — це контейнер, який буде зберігати підрахунок кожного з елементів, присутніх у контейнері. Лічильник — це підклас, доступний у класі словника.
Лічильник — це підклас, доступний у класі словника. Використовуючи Python Інструмент лічильника дозволяє підрахувати пари ключ-значення в об’єкті, який також називають об’єктом хеш-таблиці.
Навіщо використовувати Python Лічильник?
Ось основні причини використання Python 3 Лічильник:
- Лічильник зберігає дані в невпорядкованій колекції, як і об’єкти хеш-таблиці. Елементи тут представляють ключі та кількість як значення.
- Це дозволяє підраховувати елементи в ітераційному списку.
- Такі арифметичні операції, як додавання, віднімання, перетин і об’єднання, можна легко виконувати на лічильнику.
- Лічильник також може рахувати елементи з іншого лічильника
Введення в Python Counter
Python Лічильник приймає на вхід список, кортеж, словник, рядок, які є ітерованими об’єктами, і видає вам вихід, який матиме кількість кожного елемента.
Синтаксис:
Counter(list)
Вважайте, що у вас є такий список:
list1 = ['x','y','z','x','x','x','y', 'z']
Список містить елементи x, y і z. Коли ви використовуєте лічильник у цьому списку, він підраховує, скільки разів присутні x, y і z. Вихід, якщо лічильник використовується в списку1, має виглядати приблизно так:
Counter({'x': 4, 'y': 2, 'z': 2})
Отже, ми маємо кількість x як 4, y як 2 і z як 2.
Щоб використовувати лічильник, нам потрібно спочатку імпортувати його, як показано в наведеному нижче прикладі:
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})
Лічильник із рядком
In Python, усе є об’єктом, і рядок також є об’єктом. Python рядок можна створити, просто взявши символи в подвійні лапки. Python не підтримує тип символу. Вони розглядаються як рядки довжини один, також розглядаються як підрядки.
У наведеному нижче прикладі рядок передається в лічильник. Він повертає формат словника з парою ключ/значення, де ключ — це елемент, а значення — кількість. Він також розглядає пробіл як елемент і дає кількість пробілів у рядку.
приклад:
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}. Функція лічильника намагатиметься знайти кількість кожного ключа в заданому словнику.
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 Counter
Арифметичні операції, такі як додавання, віднімання, перетин і об’єднання, можна виконувати на лічильнику, як показано в прикладі нижче:
приклад:
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
Є кілька важливих методів, доступних у Counter, ось список тих самих:
- елементи () : цей метод поверне всі елементи з кількістю >0. Елементи з числом 0 або -1 не повертаються.
- most_common(значення): Цей метод поверне вам найпоширеніші елементи зі списку лічильників.
- відняти(): Цей метод використовується для вирахування елементів з іншого лічильника.
- оновлення(): Цей метод використовується для оновлення елементів з іншого лічильника.
Приклад: 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)]
Приклад: subtract()
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})
Приклад: update()
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)
вихід: Після виконання ви побачите, що кількість y змінено з 12 на 20
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Отримати та встановити кількість елементів за допомогою лічильника
Щоб отримати кількість елементів за допомогою Counter, ви можете зробити наступне:
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})
Підсумки
- Лічильник — це контейнер, який буде зберігати підрахунок кожного з елементів, присутніх у контейнері.
- Лічильник — це підклас, доступний у класі словника.
- Використання Python Інструмент лічильника дозволяє підрахувати пари ключ-значення в об’єкті, який також називають об’єктом хеш-таблиці.
- Лічильник зберігає дані в невпорядкованій колекції, як і об’єкти хеш-таблиці. Елементи тут представляють ключі та кількість як значення.
- Це дозволяє підраховувати елементи в ітераційному списку.
- Такі арифметичні операції, як додавання, віднімання, перетин і об’єднання, можна легко виконувати на лічильнику.
- Лічильник також може рахувати елементи з іншого лічильника.
- Важливими методами, доступними в лічильнику, є elements(), most_common(value), subtract() і update().
- Лічильник можна використовувати для рядка, списку, словника та кортежу.