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. Analizujcie w pokoju!
Podobał Ci się ten artykuł 🙂?
Podziel się nim w Social Mediach 📱
>>> udostępnij go na LinkedIn i pokaż, że codziennie uczysz się czegoś nowego
>>> wrzuć go na Facebooka, to się może przydać któremuś z Twoich znajomych
>>> Przypnij sobie tą stronkę to zakładek, może się przydać w przyszłości
Wolisz oglądać 📺 niż czytać – nie ma problemu
>>> Obserwuj i oglądaj KajoData na YouTube
Inne ciekawe artykuły: