collections. Counter
Słownik do zliczania: dla każdego elementu przechowuje liczbę jego wystąpień.
- Zwraca
- Obiekt
Counter, czyli słownik z liczbami wystąpień.
Przykład
#from collections import Counter
answers = ["B", "A", "B", "C", "B", "A"]
counts = Counter(answers)
print(counts)
print(counts["B"], counts["D"])
print(counts.most_common(1))Definicja i zastosowanie
#Klasa Counter z modułu collections zlicza elementy kolekcji w jednym kroku. Counter(["a", "b", "a"]) tworzy słownik, w którym kluczami są elementy, a wartościami liczba ich wystąpień. Działa z listami, napisami (liczy znaki) i każdą inną kolekcją.
Metoda most_common(n) zwraca listę n najczęstszych elementów razem z liczbą wystąpień, posortowaną od największej. Odczyt brakującego klucza zwraca 0 zamiast zgłaszać KeyError, więc nie trzeba niczego sprawdzać przed zwiększaniem licznika.
Counter jest podklasą dict, więc działa na nim wszystko, co znasz ze słowników. Dodatkowo liczniki można dodawać i odejmować operatorami + i -, a metoda update() dolicza nowe wystąpienia zamiast zastępować wartości. Sumę wszystkich liczników zwraca total().
Składnia
#from collections import Counter
Counter(iterable)
licznik.most_common(n)
licznik.update(iterable)
licznik.total()Parametry
#iterable
kolekcja lub słownik, opcjonalny
Elementy do policzenia albo słownik z gotowymi licznikami.
Więcej przykładów
#from collections import Counter
text = "python jest prosty i python jest popularny"
words = Counter(text.split())
for word, count in words.most_common(2):
print(word, count)
print(Counter("banan"))from collections import Counter
week1 = Counter(html=3, python=1)
week2 = Counter(python=4, css=2)
print(week1 + week2)
week1.update(["html", "css"])
print(week1)
print(week1.total())Dobre praktyki
#- Odczyt brakującego klucza zwraca 0, ale nie dodaje go do licznika. Dlatego
counts[x] += 1działa bez wcześniejszego sprawdzania klucza. update()wCounterdodaje liczniki, a nie zastępuje ich jak w zwykłym słowniku.- Przy remisie
most_common()zachowuje kolejność, w jakiej elementy pojawiły się po raz pierwszy.
Powiązane hasła
#- collections.defaultdictSłownik, który dla brakującego klucza sam tworzy wartość domyślną, np. pustą listę lub zero.
- str.count()Liczy nienakładające się wystąpienia fragmentu w napisie.
- list.count()Liczy, ile razy wartość występuje na liście.
- dict.get()Zwraca wartość dla klucza albo wartość domyślną, gdy klucza nie ma w słowniku.
- max()Zwraca największy element kolekcji lub największy z argumentów.
- collections.dequeKolejka dwustronna: szybkie dodawanie i usuwanie elementów z obu końców, opcjonalnie z limitem długości.
Widzisz błąd albo brakuje przykładu? Napisz do nas.