Python брояч в колекции с пример

Съдържание:

Anonim

Какво представлява броячът на Python?

Python Counter е контейнер, който ще съдържа броя на всеки от елементите, присъстващи в контейнера. Броячът е подклас, наличен в класа на речника.

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

Защо да използваме Python Counter?

Ето основните причини за използването на Python 3 Counter:

  • Броячът съхранява данните в неподредена колекция, точно като обекти за хеширане. Елементите тук представляват ключовете и броят като стойности.
  • Позволява ви да преброите елементите в итерационен списък.
  • Аритметични операции като събиране, изваждане, пресичане и обединяване могат лесно да се извършват на брояч.
  • Брояч може също да брои елементи от друг брояч

В този урок за Python ще научите:

  • Какво представлява броячът на Python?
  • Защо да използваме Python Counter?
  • Въведение в Python Counter
  • Брояч със низ
  • Брояч със списък
  • Брояч с речник
  • Брояч с Tuple
  • Достъп, инициализиране и актуализиране на броячи
  • Изтриване на елемент от брояча
  • Аритметична операция на брояч на 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 присъства. Резултатът, ако се използва брояч в list1, трябва да бъде нещо като:

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

И така, имаме броя на х като 4, у като 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})

Брояч с Tuple

Tuple е колекция от обекти, разделени със запетаи в кръгли скоби. Counter ще ви даде броя на всеки от елементите в дадения кортеж.

След като кортежът бъде даден на брояча, той ще бъде преобразуван в обект за хеширане, при което елементите ще станат ключове, а стойностите ще бъдат броят на елементите от дадения кортеж.

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, можете да направите следното:

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 е контейнер, който ще съдържа броя на всеки от елементите, присъстващи в контейнера.
  • Counter е подклас, наличен в класа на речника.
  • Използвайки инструмента за брояч на Python, можете да преброите двойките ключ-стойност в обект, наричан още обект за хеширане.
  • Броячът съхранява данните в неподредена колекция, точно като обекти за хеширане. Елементите тук представляват ключовете и броят като стойности.
  • Позволява ви да преброите елементите в итерационен списък.
  • Аритметични операции като събиране, изваждане, пресичане и обединяване могат лесно да се извършват на брояч.
  • Брояч може също да брои елементи от друг брояч.
  • Важните методи, налични на брояча, са елементи (), most_common (стойност), изваждане () и актуализация ().
  • Брояч може да се използва за низ, списък, речник и кортеж.