Kolekcje Pythona DEFAULTDICT

Kolekcje Pythona DEFAULTDICT
Podczas korzystania z słowników w Python próba dostępu do klawiszy, których brakuje w słowniku, może podnieść błędy. Wykonanie kodu zostanie przerwane, a KeyerRor zostanie podniesiony. Typ Defaultdict to klasa, która przypomina klasę podobną do słownika i jest dostępna w bibliotece Pythona „kolekcji” do obsługi i unikania tego typu sytuacji. Otrzymamy dokładne wyjaśnienie, czym jest niewykonanie zobowiązania i jak różni się on od standardowego słownika Pythona. Ponadto dowiemy się, jak ogólnie zarządzać brakującymi błędami w Pythonie. Na koniec wyjaśnimy, jak zastosować obiekt Defaultdict i użyć go do gromadzenia się, grupowania i zliczenia danych.

Jak traktują brakujące klucze w Python Dictionaries?

Dane są przechowywane jako pary wartości kluczowej w słownikach Python, które są ważnymi strukturami danych. Ponieważ każdy klucz w słownikach odpowiada wartości, są one znane jako tablice asocjacyjne. Możemy bezpośrednio odzyskać wartość klucza ze słownika Pythona, otaczając klucz do kwadratowych nawiasów. Sprawdźmy, jak uzyskać wartość klucza ze słownika w Pythonie:

Co jeśli spróbujemy uzyskać dostęp do klucza słownika, który nie jest obecny lub nie istnieje?

Jak widzimy, keyerror jest podniesiony, gdy próbujemy uzyskać dostęp do klucza słownika, który nie istnieje. Jeśli błąd nie zostanie rozwiązany, nasz program zawiedzie. Python oferuje różnorodne opcje, aby tego uniknąć, ale korzystanie z Defaultdict jest najlepszym rozwiązaniem dla tego. Zapewnia jasną, bezpieczną metodę dostarczania określonych wartości domyślnych dla każdego klucza, który nie istnieje bez potrzeby początkowego tworzenia.

Co jest niewydolne w Pythonie?

Moduł, który zapewnia wyspecjalizowane typy kontenerów, nazywa się kolekcjami i jest dostępny w standardowej bibliotece Python. Typ Defaultdict jest jednym z nich; To klasa typu DICT, która została stworzona specjalnie, aby pomóc ci w brakujących klawiszach. Python Defaultdict Typ pochodzi od DICT:

Dany kod pokazuje, że typ Defaultdict w Pythonie jest podklasą DICT. Oznacza to, że ma wiele takich samych cech, jak klasa słownika, jednocześnie modyfikowaniem i rozszerzaniem niektórych swoich funkcji.

Poniżej znajdują się znaczące modyfikacje klasy słownika:

  • Defaultdict zastępuje __missing __ (). Zapobiega podniesieniu keyerrora, gdy brakuje klucza.
  • W zapisanej zmiennej instancji o nazwie „.Dodano domyślną fabrykę ”, którą należy dostarczyć podczas instancji.

Ogólnie rzecz biorąc, Defaultdict oferuje metody podawania słowników z wartościami domyślnymi przy braku klucza. Wszelkie akceptowalne wywołanie (takie jak int, lista itp.) lub żaden nie może zostać przekazany „.Default_Factory ”Callable. Za każdym razem, gdy próbujemy uzyskać dostęp lub zmienić wartość odpowiadającą brakującemu klawiszowi, Defaultdict automatycznie wywołuje telefon, jeśli zostanie dostarczony.

Wprowadzenie do klasy DEAULTDICT w Pythonie i jej różnic od standardowego słownika Pythona są omówione w tym rozdziale. Teraz użyjemy tych obiektów w poniższej sekcji, aby ulepszyć twoje umiejętności korzystania z słowników i obsługi brakujących danych.

Jak możemy utworzyć Defaultdict?

W tej sekcji uczy, jak korzystać z modułu kolekcji Pythona do utworzenia obiektu Defaultdict. Możemy po prostu zaimportować moduł, ponieważ ten moduł jest zawarty w standardowej bibliotece Pythona. Zbadajmy, w jaki sposób możemy stworzyć Defaultdict:

Tutaj utworzono defaultdict o nazwie „defdict”. Musimy przekazać prawidłowe uznanie do pomyślnego wygenerowania słownika. Te dożyny dostarczają metody tworzenia wielu rodzajów obiektów, w tym liczb, list itp. Zamiast korzystać z funkcji, musimy użyć nazwy.

Podczas tworzenia słownika w tym przypadku przekazujemy listę do „.Fabryka domyślna ”. Defdykt jest następnie używany w taki sam sposób jak standardowy słownik. Zauważ, że słownik przypisuje wartość domyślną, która otrzymuje od wywołania listy (), gdy próbujesz uzyskać dostęp do lub zaktualizować wartość mapowaną na klucz, który nie istnieje.

Nie dzwonić do default_factory za pomocą nawiasów w czasie inicjalizacji, ponieważ należy uchwalić prawidłowy obiekt do zapowiedzi Python.

Obsługa brakujących kluczy za pomocą Defaultdict

W tej sekcji uczy, jak korzystać z niewydolności Pythona do obsługi brakujących kluczy. Wiemy już, że musisz określić domyślny typ wartości podczas tworzenia nowego Defaultdict. To pozwala nam zarządzać brakującymi danymi podczas próby dostępu do klucza, który nie jest obecny lub nie istnieje. Rzućmy okiem na następujące:

Z danego przykładu jasne jest, że z powodzeniem uzyskujemy dostęp do klucza, który nie istniał i że wartość „0” jest zwracana.

Zliczenie elementów listy za pomocą Defaultdict

Skuteczne zliczanie elementów/obiektów w iterowalnym i zwracając liczbę w słowniku to dwie kreatywne aplikacje dla obiektu Defaultdict. Przyjrzyjmy się, jak możemy to osiągnąć za pomocą standardowego słownika Pythona, zanim przejdziemy do tego, jak to zrobić z obiektem Defaultdict.

Instrukcja IF-ELSE jest używana w danym kodzie, aby uwzględnić możliwość braku klucza w naszym słowniku.

Korzystając z Defaultdict, możemy to uprościć. Nawet jeśli nasze klucze wcześniej nie istniały, możemy je bezpiecznie zwiększyć i utworzyć liczbę całkowitą jako kluczowy klucz.

Tutaj utworzyliśmy obiekt Defaultdict, tworząc nazywany i przekazując mu wartość liczb całkowitą. W rezultacie wartość otrzymuje wartość 0, jeśli brakuje klucza. Z tego powodu możemy bezpiecznie zwiększyć wartość klucza o 1, gdy natkniemy się na taki, który nie istnieje.

Grupowanie danych za pomocą Defaultdict

Obiekt Defaultdict można użyć do grupowania danych zgodnie z innymi strukturami danych. Dzięki temu iterujemy obiekty (takie jak lista zawierająca krotki, zbiór list lub inny słownik), aby zgrupować dane.

Spójrzmy na przykład. Moglibyśmy zrobić słownik z naszymi kursami jako klucze i nazwiska studentów zapisanych na każdy kurs jako lista, jeśli mamy słownik nazwisk studentów i kursy, które studiują.

Przyjrzyjmy się, jak to zrobić, najpierw za pomocą standardowego słownika Pythona. Następnie wdrażamy to za pomocą Defaultdict.

To jest trochę skomplikowane, jak widzimy. Na szczęście Defaultdict znacznie to upraszcza. Możemy wyeliminować instrukcję IF-ELSE, ustawiając wartość domyślną jako pustą listę.

Możemy zauważyć, o ile prostsze jest zrozumienie tego przykładu, ponieważ nie musimy się martwić o obsługę błędów. Kiedy brakuje klucza, nasz domyślny wyznacznik zawsze tworzy pustą listę. W rezultacie dodanie do wartości klucza jest proste i nie musimy się martwić o podniesienie Keyerrors.

Gromadzenie danych za pomocą Defaultdict

Teraz gromadzimy dane za pomocą Pythona Defaultdict. Istnieją przypadki, w których trzeba określić całkowitą sumę wartości/danych w kolekcji lub sekwencji. Załóżmy, że masz dane dotyczące przedmiotów sprzedawanych w sklepie. Najpierw przechowujmy dane jako listę obiektów krotek:

Możemy określić całkowitą sprzedaż dla każdego produktu za pomocą tych danych. Możemy to osiągnąć za pomocą Defaultdict z zestawem pływakowym jako „domyślnej fabryki”.

Aby iterować nad elementami, skonstruowaliśmy pętlę. Sprzedaż na słownik jest obliczany za pomocą operatora przypisania rozszerzonego (+=). Druga pętla drukuje sprzedaż po iteracji przez elementy defdict.

Wniosek

Niezbędne informacje o obiekcie niewykonania zobowiązania w Pythonie i tym, jak można go używać, były opisane w tym samouczku. Po raz pierwszy dowiedziałeś się o zachowaniu słowników Pythona, gdy brakuje kluczy. Następnie nauczyłeś się określić wartości domyślne za pomocą Python Defaultdict. Omówiliśmy, w jaki sposób brakujące klucze można obsługiwać za pomocą Defaultdict. Dowiedzieliśmy się, że obiekt z niewydolności można użyć do agregowania, gromadzenia i zliczania danych.