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

Что такое Python Прилавок?

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

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

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

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

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

Введение в Python Счетчик

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 Counter
list1 = ['x','y','z','x','x','x','y', 'z']
print(Counter(list1))

Вывод:

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

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

In Python, все является объектом, и строка тоже является объектом. Python string можно создать, просто заключив символы в двойные кавычки. 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})

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

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

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

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 доступно несколько важных методов, вот их список:

  • элементы () : этот метод вернет вам все элементы со счетчиком >0. Элементы со счетчиком 0 или -1 не будут возвращены.
  • Most_common (значение): Этот метод вернет вам наиболее распространенные элементы из списка счетчиков.
  • вычесть(): Этот метод используется для вычитания элементов из другого счетчика.
  • Обновить(): Этот метод используется для обновления элементов из другого счетчика.

Пример: элементы()

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)

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

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

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

Чтобы получить количество элементов с помощью 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})

Резюме

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