Wyszukiwanie w witrynie

Naucz się struktury danych zestawu/zamrożonego zestawu Pythona – część 4


W tej Części 4 serii Python Data Structure omówimy, czym jest zbiór, czym różni się od innych struktur danych w Pythonie, jak tworzyć obiekty ustawione, usuwać obiekty ustawione i metody ustawianych obiektów .

  • Obiekt ustawiony to nieuporządkowana kolekcja odrębnych obiektów, które można hashować.
  • Ustaw automatycznie usuwa zduplikowane elementy z obiektu.
  • Ponieważ ustawione obiekty są nieuporządkowane, nie są obsługiwane żadne operacje indeksowania ani wycinania.

Obecnie istnieją dwa wbudowane typy zestawów.

  1. zestaw – ponieważ jest modyfikowalny, nie ma wartości skrótu i nie może być używany ani jako klucz słownika, ani jako element innego zestawu.
  2. frozenset – Niezmienny i haszowalny – jego zawartość nie może zostać zmieniona po jego utworzeniu; może zatem służyć jako klucz słownika lub jako element innego zestawu.

Skonstruuj obiekt zestawu

Utwórz zbiór za pomocą metody konstruktora „set()” lub używając nawiasów klamrowych z przecinkami oddzielającymi elementy „{a,b,c}”.

UWAGA: nie możesz skonstruować obiektu zestawu za pomocą pustych nawiasów klamrowych, ponieważ spowoduje to utworzenie obiektu słownika.

Ustaw metody

Użyj wbudowanej funkcji „dir()”, aby wyświetlić listę dostępnych metod i atrybutów zestawu.

Dodaj elementy, aby ustawić obiekt

Jak już wspomniano, set jest typem zmiennym. Możesz dodawać, usuwać i aktualizować ustawiony obiekt po jego utworzeniu.

Porozmawiajmy o dwóch zestawach metod add i update.

  • metoda add(elem) – ta metoda dodaje pojedynczy element do ustawionego obiektu.
  • metoda update(*others) – ta metoda dodaje wiele elementów do ustawionego obiektu. Możesz przekazać zmienne/niezmienne obiekty jako argument w metodzie aktualizacji.

UWAGA: duplikaty będą automatycznie usuwane.

Usuń/Wyczyść elementy z ustawionego obiektu

Jak widzieliście wcześniej w innych tematach dotyczących struktury danych (lista, krotki, słownik), w przypadku zestawu można również użyć wbudowanego słowa kluczowego „del”, aby usunąć obiekt zestawu z przestrzeni nazw (tj. Pamięć).

Poniżej znajdują się metody ustawiania obiektów w celu usunięcia elementów.

  • clear() – Wyczyści wszystkie elementy, czyniąc zbiór pustym. Ta metoda clear() jest dostępna w innych strukturach danych zapewniających tę samą funkcjonalność.
  • pop() – Usuwa dowolne elementy.
  • discard(elem) – Jeżeli element nie zostanie znaleziony w ustawionym obiekcie, to metoda „discard()” nie zgłosi żadnego błędu.
  • remove(elem) – działa podobnie jak metoda „discard()”, ale powoduje wyświetlenie błędu KeyError, gdy element nie zostanie znaleziony.

Ustaw operacje

Set udostępnia metody wykonywania operacji matematycznych, takich jak przecięcie, suma, różnica i różnica symetryczna. Pamiętasz „diagram Venna” z czasów, gdy chodziłeś do szkoły średniej?

Przyjrzymy się poniższym metodom wykonywania operacji matematycznych.

  • unia
  • skrzyżowanie
  • aktualizacja_przecięcia
  • różnica_symetryczna
  • aktualizacja_różnicy_symetrycznej
  • różnica
  • aktualizacja_różnicy
  • jest rozłączny
  • jest podzbiorem
  • jest superzbiór

Suma, Przecięcie, Różnica, Symmetric_Difference

  • union(*other) – zwraca nowy zestaw zawierający elementy ze zbioru i wszystkich pozostałych.
  • intersection(*other) – zwraca nowy zbiór z elementami wspólnymi dla tego zbioru i wszystkich pozostałych.
  • różnica(*inne) – zwraca nowy zestaw z elementami w zestawie, których nie ma w pozostałych.
  • symmetric_difference(other) – zwraca nowy zestaw z elementami w zestawie lub w innym zestawie, ale nie w obu.

Aktualizacja_przecięcia

intersection_update(*others) – aktualizuje zestaw, zachowując tylko znalezione w nim elementy i wszystkie pozostałe.

Aktualizacja różnic

difference_update(*others) – Aktualizuj zestaw, zachowując tylko znalezione w nim elementy i wszystkie pozostałe.

Symmetric_Difference_Update

symmetric_difference_update(other) – Zaktualizuj zestaw, zachowując tylko elementy znalezione w którymkolwiek zestawie, ale nie w obu.

Jest rozłączny, jest podzbiorem, jest superzbiorem

  • isdisjoint(other) – Zwróć wartość True, jeśli zbiór nie ma wspólnych elementów z innymi. Zbiory są rozłączne wtedy i tylko wtedy, gdy ich przecięcie jest zbiorem pustym.
  • issubset() – Sprawdź, czy każdy element w zestawie znajduje się w innym.
  • issuperset() – Sprawdź, czy każdy element drugiego elementu znajduje się w zestawie.

Metoda kopiowania().

Możesz utworzyć identyczną kopię istniejącego obiektu zestawu za pomocą metody copy(). Ta metoda jest również dostępna dla innych typów struktur danych, takich jak lista, słownik itp.

Usuń ustawiony obiekt z przestrzeni nazw za pomocą wbudowanego słowa kluczowego „del”.

Mrożony zestaw

  • Zamrożony zestaw jest typem niezmiennym. Po skonstruowaniu nie można dodawać, usuwać ani aktualizować elementów z listy.
  • Zamrożone zestawy, które są niezmienne, można hashować, można ich używać jako „klucza” do słowników lub elementów innego obiektu zestawu.
  • Zbiór mrożony tworzony jest przy użyciu funkcji „frozenset()”.
  • Zamrożony zestaw zapewnia ten sam zestaw metod w porównaniu do „zestawu”, taki jak union(), przecięcie, copy(), isdisjoint() itp.

Streszczenie

W tym artykule zobaczyłeś, co jest ustawione, różnicę między zestawem a zestawem zamrożonym, jak tworzyć elementy zestawu i uzyskać do nich dostęp, metody ustawiania itp.