Jak policzyć elementy listy w Pythonie - Python Dictionary Counter

Słowniki (ang. dictionaries) w Pythonie to rodzaj kolekcji, która przechowuje pary klucz-wartość. Można je wykorzystać do liczenia elementów listy, jeśli elementy te są hashowalne (tj. można je używać jako klucze w słowniku). Jak policzyć elementy listy w Pythonie? Jak działa taki “Python Dictionary Counter”? Zobaczmy!

Jak policzyć elementy listy w Pythonie – użycie słownika

Oto przykład, jak użyć słownika do zliczenia, ile razy każdy element z listy some_random_list występuje:

dictionary_with_counter = {}
for element in some_random_list:
    if element in dictionary_with_counter:
        dictionary_with_counter[element] += 1
    else:
        dictionary_with_counter[element] = 1


W powyższym kodzie tworzymy pusty słownik dictionary_with_counter i iterujemy przez każdy element listy (więcej o listach np. tu btw) some_random_list. Jeśli dany element już istnieje jako klucz w słowniku dictionary_with_counter, to inkrementujemy jego wartość o 1. W przeciwnym razie tworzymy nowy klucz z daną wartością i ustawiamy jego wartość na 1.

Po zakończeniu pętli słownik dictionary_with_counter będzie zawierał informację, ile razy każdy element z listy some_random_list wystąpił. Na przykład, jeśli some_random_list to [1, 2, 3, 3, 3, 4, 4, 4, 4], to słownik dictionary_with_counter będzie wyglądał następująco: {1: 1, 2: 1, 3: 3, 4: 4}.

Python Counter

Można także użyć wbudowanej funkcji Counter z biblioteki collections, aby uzyskać podobny efekt bez konieczności pisania całego kodu samodzielnie. Funkcja Counter przyjmuje iterowalny obiekt (np. listę) i zwraca słownik zliczający ilość wystąpień poszczególnych elementów. Oto przykład jej użycia:

from collections import Counter
dictionary_with_counter = Counter(some_random_list)


Słownik dictionary_with_counter będzie miał takie same klucze i wartości jak w poprzednim przykładzie.

Hash, hashowalny element, czyli co?

Elementem listy, który nie jest hashowalny, jest na przykład lista. Listy w Pythonie nie są hashowalne, ponieważ ich zawartość może być zmieniana dynamicznie. Innymi elementami, które również nie są hashowalne, są na przykład słowniki i obiekty klas.

Oto przykład listy zawierającej elementy, które są i nie są hashowalne:

some_random_list = [1, 3.14, "Napis", [1, 2, 3], {"klucz": "wartość"}]

Elementy 1, 3.14 i “Napis” są hashowalne i mogą być użyte jako klucze w słowniku. Natomiast elementy [1, 2, 3] i {“klucz”: “wartość”} nie są hashowalne i nie mogą być użyte jako klucze w słowniku.

To jak w końcu policzyć elementy listy w Pythonie? Jakiś Python Dictionary Counter?! 😀

Nie, masz 2 opcje. Albo słownik, albo Counter 🙂

Słowniki w Pythonie mogą być wykorzystane do liczenia elementów listy, jeśli elementy te są hashowalne (tj. mogą być używane jako klucze w słowniku). Można to zrobić poprzez iterowanie przez listę i inkrementowanie odpowiedniej wartości w słowniku dla każdego elementu lub przez użycie wbudowanej funkcji Counter z biblioteki collections, która zwraca słownik zliczający ilość wystąpień poszczególnych elementów.

Python, python, python – a Tableau ogarniasz? Jak ładne wykresy zrobisz?


To tyle w tym temacie 😉!

Analizuj w pokoju i pamiętaj, by zapisać się na newsletter, który pozwoli Ci pracować jak najlepsi 😎!

Wolisz oglądać 📺 niż czytać – nie ma problemu!  >>> Obserwuj i oglądaj KajoData na YouTube