Jak używać modułu licznika w Python

Jak używać modułu licznika w Python
W tym artykule wyjaśniono, jak używać modułu „licznika”, który jest domyślnie z językiem programowania Python. Wszystkie próbki kodu w tym artykule są testowane z Python wersja 3.9.5 na Ubuntu 21.04.

O module kontratakowym

Moduł kontratakowy, jak sama nazwa wskazuje, może być użyty do zliczenia elementów iterabalnego lub haszalnego obiektu w Pythonie. Counter przechowuje każdy element iterable (jak obiekt listy Python) jako klucz słownika Pythona. Ponieważ słowniki Pythona pozwalają tylko na unikalne klucze, nie ma powtórzenia. Odpowiednie wartości dla tych kluczy słowników to liczba lub ilość razy, w którym element pojawia się w iteracyjnym.

Podstawowe użycie i składnia

Aby zrozumieć podstawowe użycie i składnię klasy licznej, spójrz na poniższą próbkę kodu:

Z kolekcji importowych
LIST1 = [„A”, „A”, „B”, „B”, „B”, „C”, „D”, „D”, „D”, „D”, „E”, „E” ]
Counts = Counter (List1)
wydruku (liczba)

Pierwsza instrukcja importuje moduł licznika, aby klasa licznika mogła być używana w kodzie. Następnie nowy obiekt listy Python jest zdefiniowany za pomocą niektórych danych. Nowa instancja kontr -obiekt jest następnie tworzona, przekazując „list1” jako argument. Ostateczna instrukcja drukuje dane wyjściowe obiektu „liczba”.

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

Licznik ('d': 4, „b”: 3, „a”: 2, „e”: 2, „c”: 1)

Należy zauważyć, że wyjście zwraca obiekt typu licznika, a nie słownik Python. Chociaż zachowuje się jak słownik Pythona z jedną niewielką różnicą, co wyjaśniono poniżej.

Kontr -obiekt zachowuje się jak obiekt słownika Pythona

Słownik w Python to obiekt, który przechowuje elementy w parach „Key: Value”. Poniżej znajduje się przykład słownika Pythona:

dict1 = „A”: 1, „B”: 2

Część przed symbolem „:” (okrężnicy) nazywa się „klucz”, podczas gdy część po symbolu okrężnicy nazywa się „wartością”. Możesz wartość dostępu dowolnego klucza w słowniku Python za pomocą następującej składni:

dict1 = „A”: 1, „B”: 2
wydruku (Dict1 [„A”])

Wystarczy podać nazwę klucza w „[]” (kwadratowych). Jeśli klucz nie istnieje w słowniku, rzucany jest „Keyerror”.

Dane wyjściowe powyższego przykładu pokazuje, że po utworzeniu nowej instancji klasy licznika zwracany jest nowy obiekt typu licznika. Ten obiekt typu licznika jest niczym innym jak słownikiem Python, z wyjątkiem tego, że nie rzuca „Keyerror”, gdy brakuje wartości kluczowej. Zamiast tego przypisuje mu wartość „0” (zero). Możesz również uzyskać dostęp do wartości elementów w obiekcie kontratakowym, dostarczając nazwy kluczowych w kwadratowych aparatach ortodontycznych, podobnie jak obiekt słownika. Spójrz na poniższą próbkę kodu:

Z kolekcji importowych
LIST1 = [„A”, „A”, „B”, „B”, „B”, „C”, „D”, „D”, „D”, „D”, „E”, „E” ]
Counts = Counter (List1)
druk (liczy [„f”])
dict1 = „A”: 1, „B”: 2
Drukuj (Dict1 [„C”])

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

0
Traceback (najnowsze połączenie ostatnie):
Plik ”główny.py ", wiersz 11, w
Drukuj (Dict1 [„C”])
Keyerror: „C”

Jak widać, że po dostępie do klucza, który nie istnieje w obiekcie kontratakowym, „0” (zero) jest zwracany. Z drugiej strony obiekt słownika Pythona rzuca „Keyerror”, gdy brakuje klucza.

Ręczne tworzenie kontrataków

Może istnieć przypadek, w którym możesz ręcznie zdefiniować kontratak zamiast analizować iterabinę jak lista Python. Aby utworzyć obiekt kontratakowy, możesz użyć następującej składni:

Z kolekcji importowych
licznik 1 = licznik (a = 4, b = 3)
Counter2 = Counter („A”: 4, „B”: 3)
Drukuj (licznik 1)
Drukuj (licznik 2)

Możesz użyć składni w stylu argumentu pokazanym w pierwszej instrukcji lub użyć składni stylu słownika Pythona pokazanego w drugiej instrukcji, aby utworzyć nowe instancje obiektu kontratakowego. Obie metody mają ten sam efekt i dają to samo wyjście.

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

Licznik („A”: 4, „B”: 3)
Licznik („A”: 4, „B”: 3)

Uzyskanie najczęstszych elementów z kontrataku

Możesz użyć metody „MOST_COMMON”, aby uzyskać elementy, a ich liczba posortowana w kolejności malejącej z obiektu typu licznika. Spójrz na poniższą próbkę kodu:

Z kolekcji importowych
LIST1 = [„A”, „A”, „B”, „B”, „B”, „C”, „D”, „D”, „D”, „D”, „E”, „E” ]
Counts = Counter (List1)
Drukuj (liczba.most_common ())

Dane wyjściowe zwraca listę krotek, a nie kontratak lub obiekt słownika Pythona.

Możesz także uzyskać tylko kilka najwyższych elementów, dostarczając liczbę do metody „Most_Common” jako argument.

Z kolekcji importowych
LIST1 = [„A”, „A”, „B”, „B”, „B”, „C”, „D”, „D”, „D”, „D”, „E”, „E” ]
Counts = Counter (List1)
Drukuj (liczba.most_common (2))

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

[(„D”, 4), („B”, 3)]

Inne przydatne metody kontrataków

Możesz uzyskać dostęp do wszystkich klawiszy i wartości licznika obiektów za pomocą odpowiednio metod „klawisze” i „wartości”.

Z kolekcji importowych
LIST1 = [„A”, „A”, „B”, „B”, „B”, „C”, „D”, „D”, „D”, „D”, „E”, „E” ]
Counts = Counter (List1)
Drukuj (liczba.Klucze())
Drukuj (liczba.wartości ())

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

dict_keys ([„a”, „b”, „c”, „d”, „e”])
Dict_values ​​([2, 3, 1, 4, 2])

Te metody wytwarzają iteracyjne obiekty, dzięki czemu możesz je zapętlić.

Możesz uzyskać zarówno klawisze, jak i wartości za pomocą metody „Items”.

Z kolekcji importowych
LIST1 = [„A”, „A”, „B”, „B”, „B”, „C”, „D”, „D”, „D”, „D”, „E”, „E” ]
Counts = Counter (List1)
Drukuj (liczba.rzeczy())

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

dict_items ([('a', 2), ('b', 3), ('c', 1), ('d', 4), ('e', 2)]))

Możesz także zapętlić się przez wynik uzyskany za pomocą metody „pozycji”.

Możesz przekonwertować kontr -obiekt na słownik Python za pomocą funkcji „DICT”.

Z kolekcji importowych
LIST1 = [„A”, „A”, „B”, „B”, „B”, „C”, „D”, „D”, „D”, „D”, „E”, „E” ]
Counts = Counter (List1)
druk (dict (liczba))

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

„A”: 2, „B”: 3, „C”: 1, „D”: 4, „e”: 2

Zapętlanie klawiszy i wartości obiektu kontraktowego

Możesz łatwo zapętlić pary wartości kluczowej obiektu za pomocą metody „Items” wyjaśnionej powyżej. Spójrz na poniższą próbkę kodu:

Z kolekcji importowych
LIST1 = [„A”, „A”, „B”, „B”, „B”, „C”, „D”, „D”, „D”, „D”, „E”, „E” ]
Counts = Counter (List1)
dla klucza, wartość w liczbie.rzeczy():
druk (klucz, wartość)

W kodzie zmienną parą kluczy można uzyskać odpowiednio za pomocą zmiennych „Key” i „Wartość” w pętli „dla”.

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

2
B 3
C 1
D 4
E 2

Wniosek

Wbudowany moduł „licznika” Pythona zapewnia szybki i wydajny sposób na uzyskanie liczby elementów przechowywanych w obiekcie typu iterowal. Możesz użyć metody „MOST_COMMON”, aby uzyskać najwyższe pary z najwyższymi liczbami, dostarczając żądaną liczbę jako argument.