Що таке лічильник Python?
Лічильник Python - це контейнер, який буде містити підрахунок кожного з елементів, що є в контейнері. Лічильник - це підклас, доступний всередині класу словника.
Лічильник - це підклас, доступний всередині класу словника. Використовуючи інструмент «Лічильник Python», ви можете порахувати пари ключ-значення в об’єкті, який також називається об’єктом хеш-таблиці.
Навіщо використовувати лічильник Python?
Ось основні причини використання лічильника Python 3:
- Лічильник зберігає дані у невпорядкованій колекції, подібно до об'єктів, що хеш-таблиці. Елементи тут представляють ключі та відлік як значення.
- Це дозволяє підрахувати елементи у списку, який можна повторити.
- Арифметичні дії, такі як додавання, віднімання, перетин та об'єднання, можна легко виконувати на лічильнику.
- Лічильник також може рахувати елементи з іншого лічильника
У цьому підручнику з Python ви дізнаєтесь:
- Що таке лічильник Python?
- Навіщо використовувати лічильник Python?
- Вступ до лічильника Python
- Лічильник із рядком
- Лічильник зі списком
- Лічильник зі словником
- Лічильник з кортежем
- Доступ, ініціалізація та оновлення лічильників
- Видалення елемента з лічильника
- Арифметична операція на лічильнику Python
- Методи, доступні на лічильнику Python
- Перепризначення рахунків у Python
- Отримайте та встановіть кількість елементів за допомогою Counter
Вступ до лічильника Python
Лічильник 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 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}. Функція Counter спробує знайти кількість кожного ключа в даному словнику.
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 () : Цей метод поверне вам усі елементи з рахунком> 0. Елементи з рахунком 0 або -1 не повертаються.
- most_common (значення): Цей метод поверне вам найпоширеніші елементи зі списку Counter.
- віднімання (): Цей метод використовується для вирахування елементів з іншого лічильника.
- 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})
Отримайте та встановіть кількість елементів за допомогою Counter
Щоб отримати підрахунок елемента за допомогою Counter, ви можете зробити наступне:
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», ви можете порахувати пари ключ-значення в об’єкті, який також називається об’єктом хеш-таблиці.
- Лічильник зберігає дані у невпорядкованій колекції, подібно до об'єктів, що хеш-таблиці. Елементи тут представляють ключі та відлік як значення.
- Це дозволяє підрахувати елементи у списку, який можна повторити.
- Арифметичні дії, такі як додавання, віднімання, перетин та об'єднання, можна легко виконувати на лічильнику.
- Лічильник також може рахувати елементи з іншого лічильника.
- Важливими методами, доступними на лічильнику, є елементи (), most_common (значення), віднімання () та update ().
- Лічильник можна використовувати для рядка, списку, словника та кортежу.