Stronę tą wyświetlono już: 27041 razy
Zbiory tworzone są z elementów interowalnych w taki sposób, że w dany zbiorze może znaleźć się tylko jeden element o danej wartości.
Tworzenie zbioru z tekstu
Zbiory można tworzyć z tekstu, ponieważ tekst jest również elementem interowalnym:
Wynik działania:
{'p', 'ś', 'y', 'a', 'm', 'ł', ' ', 't', 'w', 'r', 'i', 'J', 'd', 'o', 'k', 'z', 'e', 's'}
Tworzenie zbioru z listy
Zbiory można tworzyć z listy:
Wynik działania:
{'dziesięć', 9, (0, 0), 'jedenaście'}
Łączenie dwóch zbiorów
Za pomocą wewnętrznej metody union:
Wynik działania:
{'j', 's', 'm', 'ś', 'e', 'a', ' ', 'k', 't', 'i'}
Za pomocą operatora |:
Część wspólna dwóch zbiorów
Za pomocą wewnętrznej metody intersection:
Wynik działania:
{'k', 'e', 't', 's'}
Za pomocą operatora &
Różnica dwóch zbiorów
Za pomocą wewnętrznej metody difference:
Wynik działania:
set() {'j', 'ś', 'a', ' ', 'm', 'i'}
Za pomocą operatora -:
Różnica symetryczna dwóch zbiorów
Za pomocą wewnętrznej metody symmetric_difference:
Wynik działania:
{'j', 'm', 'ś', 'a', ' ', 'i'}
Za pomocą operatora ^:
Różnica symetryczna dwóch zbiorów to taka, gdzie dany element występuje w jednym lub w drugim zbierze, ale nie w obu na raz.
Suma dwóch zbiorów z podstawieniem
Zbiór można zsumować dwa zbiory korzystając z wewnętrznej metody update:
Wynik działania:
{'e', 'i', 'a', ' ', 'm', 't', 's', 'k', 'j', 'ś'} {'e', 'y', 'i', 'a', 'z', ' ', 'r', 'm', 't', 's', 'w', 'o', 'n', 'b', 'k', 'j', 'u', 'ś', 'd'}
Ten sam efekt można uzyskać znacznie krótszym zapisem, korzystając z operatora |=:
Warto zwrócić uwagę, że przy użyciu operatora |= konieczne było utworzenie zbioru z elementów tekstu za pomocą set, czego nie trzeba było robić przy użyciu metody wewnętrznej update.
Część wspólna dwóch zbiorów z podstawieniem
I znów istnieją dwa sposoby, pierwszy wykorzystuje wewnętrzną metodę intersection_update:
Wynik działania:
{'ś', 'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '} {'e', 'i', 's', 'k', 't', ' '}
Ten sam efekt można uzyskać przy wykorzystaniu operatora &=:
I znów, tak jak uprzednio konieczne było rzutowanie na set.
Część wspólna dwóch zbiorów z podstawieniem
Pierwszy sposób, wykorzystujący wewnętrzną metodę difference_update:
Wynik działania:
{'ś', 'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '} {'ś', 'a', 'j', 'm'}
Ten sam wynik można uzyskać przy wykorzystaniu operatora -=:
W tym przypadku również konieczne jest rzutowanie na set.
Różnica symetryczna dwóch zbiorów z podstawieniem
Pierwszy sposób, wykorzystujący wewnętrzną metodę difference_update:
Wynik działania:
{'ś', 'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '} {'ś', 'z', 'b', 'y', 'u', 'a', 'n', 'j', 'm', 'd', 'o', 'w', 'r'}
Ten sam wynik można uzyskać przy wykorzystaniu operatora ^=:
W tym przypadku również konieczne jest rzutowanie na set.
Dodawanie pojedynczego elementu do zbioru
Dodawanie elementu do
Wynik działania:
{'ś', 'e', 'i', 's', '5', 'a', 'j', 'k', 'm', 't', ' '} {'ś', 'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '}
Usuwanie pojedynczego elementu zbioru
Pierwszy sposób, za pomocą metody wewnętrznej remove:
Wynik działania:
{'ś', 'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '} {'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '}
Metoda remove ma pewną wadę, a mianowicie taką, że gdy dany element nie istnieje w zbiorze generowany jest paskudny kod błędu. Dlatego też, gdy nie ma pewności, czy dany element istnieje w zbiorze lepiej użyć metody discard, która usuwa dany element, jeśli istnieje on w zbiorze:
Kolejną metodą, która zwraca i usuwa pierwszy element zbioru jest pop:
Wynik działania:
{'ś', 'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '} ś {'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '}
Metoda pop zwraca błąd, jeżeli zbiór jest pusty.
Opróżnianie zbioru za pomocą metody clear:
Wynik działania:
{'ś', 'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '} set()
Kopiowanie zbioru za pomocą metody copy:
Wynik działania:
{'ś', 'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '} set() {'ś', 'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '}
Liczba elementów zbioru
Za pomocą funkcji len:
Wynik działania:
{'ś', 'e', 'i', 's', 'a', 'j', 'k', 'm', 't', ' '} 10
Za pomocą metody wewnętrznej __len__: