CodeGym /Kursy /Python SELF PL /Praca z zestawami

Praca z zestawami

Python SELF PL
Poziom 9 , Lekcja 3
Dostępny

3.1 Określanie liczby elementów

Aby określić liczbę elementów w zestawie, możesz użyć funkcji len(). Funkcja ta zwraca liczbę unikalnych elementów w zestawie.

Przykład użycia funkcji len()


my_set = {1, 2, 3, 4, 5}
print(len(my_set))  # Wydruk: 5
        

W tym przykładzie zestaw my_set zawiera pięć elementów. Funkcja len() zwraca tę liczbę.

Sprawdzanie, czy zestaw jest pusty

Możesz użyć funkcji len(), aby sprawdzić, czy zestaw jest pusty. Jest to przydatne w warunkach i pętlach.


my_set = set()

if len(my_set) == 0:
    print("Zestaw jest pusty")
else:
    print("Zestaw nie jest pusty")
        

3.2 Określanie typu

Jeśli nie jesteś pewien, czy zmienna przechowuje zestaw, dla większej pewności możesz użyć funkcji type(). Funkcja type() w Pythonie zwraca typ obiektu. Jest to przydatne do sprawdzania typu danych, zwłaszcza gdy pracujesz z zestawami i innymi kolekcjami danych.

Przykład:


my_set = {1, 2, 3}
print(type(my_set))  # Wydruk: <class 'set'>

        

W tym przykładzie type(my_set) zwraca <class 'set'>, wskazując, że my_set jest zestawem.

Sprawdzanie typu danych

Możesz użyć funkcji type(), aby sprawdzić typ danych przed wykonaniem operacji. Pomaga to unikać błędów związanych z niezgodnymi typami danych.


def add_element(collection, element):
    if type(collection) is set:
        collection.add(element)
    else:
        print("Błąd: przekazana kolekcja nie jest zestawem")
        
my_set = {1, 2, 3}
add_element(my_set, 4)  # Element zostanie dodany
add_element([1, 2, 3], 4)  # Wywoła błąd
        

W tym przykładzie funkcja add_element() sprawdza, czy przekazana kolekcja jest zestawem, przed dodaniem elementu.

Funkcja type() może być przydatna przy tworzeniu złożonych struktur danych, które mogą zawierać wiele różnych typów danych. Pozwala dynamicznie określać typ danych i odpowiednio je obsługiwać.

Przykład:


my_set = {}
print(type(my_set))  # Wydruk: <class 'dict'> 
        

Nawiasy klamrowe są używane do tworzenia zestawu i do tworzenia słownika (tam jest trochę inna składnia wewnątrz). Domyślnie, jeśli w nawiasach nie ma elementów — to tworzy słownik!

3.3 Kolejność elementów

Zestawy to szczególny typ kolekcji danych, który przechowuje tylko unikalne elementy. Jedną z kluczowych cech zestawów jest to, że są nieuporządkowane. Oznacza to, że elementy zestawu nie mają ustalonej kolejności, a ich kolejność może się zmieniać przy każdej iteracji.

Zestawy w Pythonie są zaimplementowane na bazie tabeli haszującej. Kiedy dodajesz element do zestawu, Python oblicza jego wartość haszującą i używa jej do określenia pozycji elementu w tabeli haszującej. Ta struktura danych zapewnia szybką weryfikację przynależności, dodawanie i usuwanie elementów. Jednakże z powodu użycia wartości haszujących kolejność elementów nie jest zachowana i nie można jej przewidzieć.

Przykład nieuporządkowania zestawów

Rozważmy prosty przykład:


my_set = {3, 1, 2}
for item in my_set:
    print(item)
    

Podczas wykonywania tego kodu elementy mogą być wyświetlane w dowolnej kolejności, na przykład 1 2 3 lub 3 1 2. Oznacza to, że kolejność wyświetlania elementów zestawu nie jest gwarantowana i może się zmieniać przy każdym uruchomieniu programu.

Ważność nieuporządkowania

Nieuporządkowanie zestawów ma kilka ważnych konsekwencji:

  • Brak indeksacji: w przeciwieństwie do list i krotek, zestawy nie obsługują dostępu do elementów za pomocą indeksu. Próba wykonania my_set[0] wywoła błąd.
  • Wydajność: Nieuporządkowanie pozwala zestawom być efektywnymi pod względem wydajności, zwłaszcza przy dodawaniu i usuwaniu elementów.
  • Unikalność elementów: Zestawy automatycznie usuwają duplikaty, co czyni je przydatnymi do przechowywania unikalnych danych.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION