Python Licznik w kolekcjach z przykładem

Co to jest Python Lada?

Python Licznik to kontener, który będzie przechowywać liczbę każdego elementu znajdującego się w kontenerze. Licznik jest podklasą dostępną wewnątrz klasy słownika.

Licznik jest podklasą dostępną wewnątrz klasy słownika. Korzystanie z Python Narzędzie Licznik umożliwia zliczanie par klucz-wartość w obiekcie, zwanym także obiektem tablicy mieszającej.

Dlaczego warto korzystać Python Lada?

Oto główne powody używania Python 3 Licznik:

  • Licznik przechowuje dane w nieuporządkowanej kolekcji, podobnie jak obiekty z tablicą mieszającą. Elementy tutaj reprezentują klucze i liczbę jako wartości.
  • Pozwala policzyć elementy na liście iterowalnej.
  • Na liczniku można łatwo wykonywać operacje arytmetyczne takie jak dodawanie, odejmowanie, iloczyn i suma.
  • Licznik może także zliczać elementy z innego licznika

Wprowadzenie do Python Przeciwdziałać

Python Licznik pobiera na wejściu listę, krotkę, słownik, ciąg znaków, które są obiektami iterowalnymi, i daje wynik, który będzie zawierał liczbę każdego elementu.

Składnia:

Counter(list)

Wyobraź sobie, że masz następującą listę:

list1 = ['x','y','z','x','x','x','y', 'z']

Lista zawiera elementy x, y i z. Kiedy użyjesz licznika na tej liście, policzy, ile razy x, yiz występuje. Dane wyjściowe, jeśli licznik jest używany na liście 1, powinny wyglądać mniej więcej tak:

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

Mamy więc liczbę x jako 4, y jako 2 i z jako 2.

Aby skorzystać z Countera, musimy go najpierw zaimportować, jak pokazano w poniższym przykładzie:

from collections import Counter

Oto prosty przykład ilustrujący działanie modułu Licznik.

from collections import Counter
list1 = ['x','y','z','x','x','x','y', 'z']
print(Counter(list1))

Wyjście:

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

Licznik ze sznurkiem

In Python, wszystko jest obiektem i ciąg znaków też jest obiektem. Python ciąg można utworzyć po prostu umieszczając znaki w cudzysłowie. Python nie obsługuje typu znaku. Są one traktowane jako ciągi o długości jeden, uważane również za podciąg.

W poniższym przykładzie do Counter przekazywany jest ciąg znaków. Zwraca format słownikowy z parą klucz/wartość, gdzie klucz jest elementem, a wartość jest liczbą. Traktuje również spację jako element i podaje liczbę spacji w ciągu.

Przykład:

from collections import Counter
my_str = "Welcome to Guru99 Tutorials!"
print(Counter(my_str))

Wyjście:

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})

Licznik z listą

Lista jest obiektem iterowalnym, którego elementy znajdują się w nawiasach kwadratowych.

Elementy listy po przekazaniu licznikowi zostaną przekonwertowane na obiekty z tablicą mieszającą, w których elementy staną się kluczami, a wartościami będą liczba elementów z podanej listy.

Na przykład ['x','y','z','x','x','x','y','z']. Gdy podasz liście Licznik, wyświetli się liczba każdego elementu na liście.

from collections import Counter
list1 = ['x','y','z','x','x','x','y','z']
print(Counter(list1))

Wyjście:

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

Licznik ze słownikiem

Słownik zawiera elementy w postaci par klucz/wartość, które są zapisane w nawiasach klamrowych.

Gdy słownik zostanie przekazany licznikowi, zostanie on przekonwertowany na obiekty z tablicą mieszającą, w których elementy staną się kluczami, a wartościami będą liczba elementów z podanego słownika.

Na przykład: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Funkcja Licznik spróbuje znaleźć liczbę każdego klucza w podanym słowniku.

from collections import Counter
dict1 =  {'x': 4, 'y': 2, 'z': 2, 'z': 2}
print(Counter(dict1))

Wyjście:

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

Licznik z Tuple

Krotka to zbiór obiektów oddzielonych przecinkami w nawiasach okrągłych. Counter poda liczbę każdego elementu w podanej krotce.

Gdy krotka zostanie przekazana licznikowi, zostanie ona przekonwertowana na obiekt z tablicą haszującą, w którym elementy staną się kluczami, a wartościami będą liczba elementów z podanej krotki.

from collections import Counter
tuple1 = ('x','y','z','x','x','x','y','z')
print(Counter(tuple1))

Wyjście:

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

Dostęp, inicjowanie i aktualizacja liczników

Inicjowanie licznika

Licznik można zainicjować, przekazując wartość ciągu, listę, słownik lub krotkę, jak pokazano poniżej:

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

Możesz także zainicjować pusty licznik, jak pokazano poniżej:

from collections import Counter
_count = Counter()

Aktualizacja licznika

Możesz dodać wartości do licznika, używając metody update().

_count.update('Welcome to Guru99 Tutorials!')

Ostateczny kod to:

from collections import Counter
_count = Counter()
_count.update('Welcome to Guru99 Tutorials!')
print(_count)

Wynik to:

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})

Dostęp do licznika

Aby uzyskać wartości z licznika, możesz wykonać następujące czynności:

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]))

Wyjście:

u : 3

G : 1
u : 3
r : 2
u : 3

Usuwanie elementu z licznika

Aby usunąć element z Counter, możesz skorzystać z del , jak pokazano w poniższym przykładzie:

Przykład:

from collections import Counter
dict1 =  {'x': 4, 'y': 2, 'z': 2}
del dict1["x"]
print(Counter(dict1))

Wyjście:

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

Operacja arytmetyczna na Python Przeciwdziałać

Na liczniku można wykonywać działania arytmetyczne, takie jak dodawanie, odejmowanie, iloczyn i suma, jak pokazano w poniższym przykładzie:

Przykład:

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)

Wyjście:

Counter({'y': 7, 'x': 4, 'z': 2})
Counter({'x1': 12, 'x': 4})
Counter({'y': 2})
Counter({'y': 5, 'x': 4, 'z': 4})

Metody Dostępne na Python Przeciwdziałać

W Counter dostępnych jest kilka ważnych metod, oto ich lista:

  • elementy() : Ta metoda zwróci wszystkie elementy o liczbie > 0. Elementy z liczbą 0 lub -1 nie zostaną zwrócone.
  • most_common(wartość): Ta metoda zwróci Ci najczęstsze elementy z listy Liczników.
  • odjąć(): Ta metoda służy do odejmowania elementów z innego Licznika.
  • aktualizacja(): Metoda ta służy do aktualizacji elementów z innego Licznika.

Przykład: elementy()

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)

Wyjście:

x
x
x
x
x
y
y

Przykład: most_common(wartość)

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)

Wyjście:

 [('y', 12), ('x', 5)]
[('y', 12), ('x', 5), ('x1', 0), ('z', -2)]

Przykład: odejmij()

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)

Wyjście:

Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})

Przykład: aktualizacja()

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)

Wyjście:

Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})

Ponowne przypisanie się liczy Python

Możesz ponownie przypisać liczniki, jak pokazano poniżej:

Załóżmy, że masz słownik jako: {'x': 5, 'y': 12, 'z': -2, 'x1':0}

Możesz zmienić liczbę elementów, jak pokazano poniżej:

from collections import Counter
counter1 =  Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})

counter1['y'] = 20

print(counter1)

Wyjście: Po wykonaniu zobaczysz, że liczba y została zmieniona z 12 na 20

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

Uzyskaj i ustaw liczbę elementów za pomocą licznika

Aby uzyskać liczbę elementów za pomocą licznika, możesz wykonać następujące czynności:

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'

Wyjście:

12

Aby ustawić liczbę elementów, możesz wykonać następujące czynności:

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)

Wyjście:

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

Podsumowanie

  • Licznik to kontener, który będzie przechowywać liczbę każdego elementu znajdującego się w kontenerze.
  • Counter jest podklasą dostępną wewnątrz klasy słownika.
  • Korzystanie z Python Narzędzie Licznik umożliwia zliczanie par klucz-wartość w obiekcie, zwanym także obiektem hashtable.
  • Licznik przechowuje dane w nieuporządkowanej kolekcji, podobnie jak obiekty z tablicą mieszającą. Elementy tutaj reprezentują klucze i liczbę jako wartości.
  • Pozwala policzyć elementy na liście iterowalnej.
  • Na liczniku można łatwo wykonywać operacje arytmetyczne takie jak dodawanie, odejmowanie, iloczyn i suma.
  • Licznik może także zliczać elementy z innego licznika.
  • Ważne metody dostępne w Counter to elementy() , most_common(value), subtract() i update().
  • Licznika można używać w przypadku ciągu znaków, listy, słownika i krotki.