Sets - Learn Python 3 - Snakify

Lesson 10
Zestawy


1. Co to jest zestaw

Ustawiona w Pythonie struktura danych odpowiada zestawom w matematyce. Może składać się z różnych elementów; kolejność elementów w zbiorze jest niezdefiniowana. Można dodawać i usuwać elementy zestawu, można iterować elementy zestawu, można wykonywać standardowe operacje na zestawach (połączenie, przecięcie, różnica). Poza tym możesz sprawdzić, czy element należy do zestawu.

W przeciwieństwie do tablic, gdzie elementy są przechowywane jako uporządkowana lista, kolejność elementów w zbiorze jest niezdefiniowana (ponadto elementy zestawu zwykle nie są przechowywane w kolejności pojawiania się w zbiorze, co pozwala na sprawdzenie, czy element należy do zestawu szybciej niż przechodzenie przez wszystkie elementy zestawu).

Dowolny niezmienny typ danych może być elementem zestawu: liczbą, łańcuchem, krotką. Zmienne (zmienne) typy danych nie mogą być elementami zestawu. W szczególności lista nie może być elementem zestawu (ale krotką), a inny zestaw nie może być elementem zestawu. Wymóg niezmienności wynika ze sposobu, w jaki komputery reprezentują zbiory w pamięci.

Advertising by Google, may be based on your interests

2. Jak zdefiniować zestaw

Możesz zdefiniować zestaw tak prosty, jak nazywając wszystkie jego elementy w nawiasach. Jedynym wyjątkiem jest zestaw pusty , który można utworzyć za pomocą funkcji set() . Jeśli set(..) ma listę, łańcuch lub krotkę jako parametr, zwróci zestaw złożony z jego elementów. Na przykład,

A = {1, 2, 3}
A = set('qwerty')
print(A)

wydrukuje {'e', 'q', 'r', 't', 'w', 'y'} jako wynik.

Kolejność elementów jest nieważna. Na przykład program

A = {1, 2, 3}
B = {3, 2, 3, 1}
print(A == B)

wypisze True , ponieważ A i B są równymi zestawami.

Każdy element może wejść do zestawu tylko raz. set('Hello') zwraca zestaw czterech elementów: {'H', 'e', 'l', 'o'} .

Advertising by Google, may be based on your interests

3. Operacje z elementami

Możesz uzyskać liczbę elementów w zestawie za pomocą funkcji len .

Możesz także iterować po wszystkich elementach zestawu (w niezdefiniowanej kolejności!) Używając pętli for :

primes = {2, 3, 5, 7, 11}
for num in primes:
    print(num)

Możesz sprawdzić, czy element należy do zestawu za pomocą słowa kluczowego in : wyrażenia takie jak a in A zwracają wartość typu bool . Podobnie jest przeciwieństwem operacja not in . Aby dodać element do zestawu, należy add metodę:

A = {1, 2, 3}
print(1 in A, 4 not in A)
A.add(4)

Istnieją dwie metody usuwania elementu z zestawu: discard i remove . Ich zachowanie zmienia się tylko w przypadku, gdy usunięty element nie był w zestawie. W takim przypadku metoda discard nic nie robi, a metoda remove KeyError wyjątek KeyError .

Na koniec, pop usuwa jeden losowy element z zestawu i zwraca jego wartość. Jeśli zestaw jest pusty, pop generuje wyjątek KeyError .

Możesz przekształcić zestaw do listy używając list funkcji.

Advertising by Google, may be based on your interests

4. Operacje na zestawach

Oto jak wykonać dobrze znane operacje na zestawach w Pythonie:

A | b
A.union (B)
Zwraca zestaw będący połączeniem zbiorów A i B
A | = B
A.update (B)
Dodaje wszystkie elementy tablicy B do zbioru A
A i B
Sekcja specjalna (B)
Zwraca zestaw będący przecięciem zbiorów A i B
A & = B
A.intersection_update (B)
Liście w zbiorze A tylko przedmioty należące do zbioru B
A - B
A.difference (B)
Zwraca ustawioną różnicę A i B (elementy zawarte w A , ale nieuwzględnione w B ).
A - = B
A.difference_update (B)
Usuwa wszystkie elementy B z zestawu A
A ^ B
A.symmetric_difference (B)
Zwraca symetryczną różnicę zbiorów A i B (elementy należące do A lub B , ale nie do obu zbiorów jednocześnie).
A ^ = B
A.symmetric_difference_update (B)
Zapisuje w A symetryczną różnicę zbiorów A i B
A <= B
A.issubset (B)
Zwraca wartość true jeśli A jest podzbiorem B
A> = B
A.issuperset (B)
Zwraca wartość true jeśli B jest podzbiorem A
A <B
Odpowiednik A <= B and A != B
A> B
Odpowiednik A >= B and A != B
Advertising by Google, may be based on your interests