Blog JSystems - uwalniamy wiedzę!

Szukaj
Zbiory (set) - unikalne elementy i operacje
Zbiór trzyma tylko unikalne wartości i wspiera operacje: suma, część wspólna, różnica

Zestawy to takie specyficzne zbiory elementów bez powtórzeń. W zestawach żadna wartość nie może się powtórzyć dwa razy. Są użyteczne np. do usuwania duplikatów. Dodatkowo zestawy automatycznie się sortują.

Tworzenie zestawów i konwersje z innych typów złożonych

Podobnie jak w listach, krotkach i słownikach, także i tu mamy różne sposoby deklaracji zestawów. Możemy zadeklarować pusty zestaw takimi sposobami:

z={}
z2=set()

Możemy też stworzyć zestaw od razu zapełniając go danymi:

z3={1,3,2,1,5,1}
print(z3)

Pisałem wcześniej że zestawy nie mogą zawierać duplikatów, a tymczasem dodałem kilkukrotnie tę samą wartość "1". Przy takiej deklaracji nie dostaniemy żadnego wyjątku. Po prostu "1" na liście wystąpi tylko raz. W dodatku dane będą posortowane. Sprawdźmy co zobaczymy na konsoli po uruchomieniu powyższego kodu:

{1, 2, 3, 5}

Zwróć uwagę że w przypadku zestawów używamy nawiasów klamrowych. Jak widać 1 wystąpiła tylko raz, w dodatku zestaw jest posortowany rosnąco.

A co w przypadku zestawów elementów złożonych? Sprawdźmy to na przykładzie zestawu krotek:

z4={(1,"A"),(2,"B"),(1,"C"),(1,"A")}
print(z4)

Co zostało wydrukowane na konsoli?

{(1, 'C'), (2, 'B'), (1, 'A')}

Czyli za duplikat zostaną uznane tylko te krotki, które mają identyczną zawartość wszystkich podelementów.

Jeśli na przykład mamy zbiór elementów pod postacią listy lub krotki, a chcielibyśmy pozbyć się z nich duplikatów to jak to zrobić? Możemy do tego celu wykorzystać właśnie zestawy:

lista=[1,2,3,4,3,2,1]
zestaw=set(lista)
lista2=list(zestaw)
print(lista2)

Powyższy kod drukuje na konsoli taki wynik:

[1, 2, 3, 4]

Modyfikowanie zawartości zestawów

Do dodawania i kasowania elementów w zbiorach służą odpowiednio funkcje wbudowane "add" i "remove":

s={1,2,3,4}
s.add(5)
s.remove(1)
print(s)

Powyższy kod na konsoli drukuje:

{2, 3, 4, 5}

Funkcja remove przyjmuje przez parametr wartość która ma zostać usunięta ze zbioru. Wystąpić może tylko raz w zbiorze, więc nie musimy się zastanawiać czy usunięte zostaną wszystkie czy tylko pierwsze wystąpienie wartości :)

Podobnie jak np. w listach istnieje też funkcja clear, która kasuje całą zawartość zestawu.

Szkolenie Python od podstaw, przez analizę danych, do machine learning w JSystems

Ten kurs daje Ci solidne podstawy Pythona. Jeśli chcesz pójść dalej i pod okiem trenera dojść od pierwszej linijki kodu do własnego modelu uczenia maszynowego, sprawdź nasze pięciodniowe szkolenie Python od podstaw, przez analizę danych, do machine learning. Pierwsze trzy dni to Python w praktyce: typy i kolekcje, instrukcje warunkowe i pętle, funkcje, moduły i pakiety, pliki tekstowe, usługi sieciowe oraz praca z bazą PostgreSQL. Czwarty dzień to analiza danych w pandas (wczytywanie CSV, TSV i XLS, filtrowanie, agregacje, statystyki) i wizualizacja w Matplotlib, Seaborn oraz Plotly. Piąty dzień to uczenie maszynowe w scikit-learn: regresja liniowa i logistyczna, drzewa decyzyjne, las losowy, XGBoost, walidacja predykcji, dobór hiperparametrów i przeciwdziałanie przeuczeniu. Szkolenie ma terminy gwarantowane, czyli odbywa się niezależnie od wielkości grupy.

Szkolenie Python od podstaw, przez analizę danych, do machine learning

To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.

★★★★★Średnia ocena naszych szkoleń w Google: 5/5

Najczęściej zadawane pytania

Czym jest zbiór (set) w Pythonie?
Zbiór to kolekcja przechowująca wyłącznie unikalne wartości, w której żaden element nie może wystąpić dwa razy. Zbiory są przydatne do usuwania duplikatów i dodatkowo automatycznie porządkują swoją zawartość. Do ich zapisu używa się nawiasów klamrowych.
Jak usunąć duplikaty z listy za pomocą zbioru?
Wystarczy przekonwertować listę na zbiór funkcją set, co usunie powtórzenia, a następnie zamienić ją z powrotem na listę funkcją list. W efekcie otrzymasz listę bez zduplikowanych wartości, ponieważ zbiór nie przechowuje powtórzeń.
Kiedy krotki w zbiorze uznawane są za duplikaty?
Za duplikat uznawane są tylko te krotki, które mają identyczną zawartość wszystkich swoich elementów. Jeśli choć jeden podelement się różni, krotki traktowane są jako różne i obie pozostają w zbiorze.
Jak dodawać i usuwać elementy ze zbioru?
Do dodawania służy funkcja add, a do usuwania funkcja remove, która przyjmuje wartość do usunięcia. Ponieważ wartość może wystąpić w zbiorze tylko raz, nie trzeba się zastanawiać nad wieloma wystąpieniami. Do wyczyszczenia całej zawartości służy funkcja clear.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...