PYTHON Zbiory | Operacje na zbiorach
Suma zbiorów
A = {0, 1, 2, 3} B = {2, 3, 4, 5} print("Suma:", A | B)
Sumą zbiorów jest logiczne lub (or). Uzyskamy go dzięki operatorowi |.
Wynikiem będą wszystkie elementy obu zbiorów, oczywiście bez powtórzeń:
Suma: {0, 1, 2, 3, 4, 5}
To samo działanie ma metoda:
print("Suma:",A.union(B))
Część wspólna, iloczyn zbiorów
Część wspólną zbiorów uzyskamy mnożąc je logicznie przez siebie, czyli wykonując operację AND: &.
A = {0, 1, 2, 3} B = {2, 3, 4, 5} print("Część wspólna:", A & B)
Wynikiem będą elementy należące zarówno do jednego, jak i do drugiego zbioru:
Część wspólna: {2, 3}
To samo działanie ma metoda:
print("Część wspólna:",A.intersection(B))
Różnice zbiorów
Różnicą zbiorów możemy sprawdzić jakie elementy należą do zbioru A, a nie należą do zbioru B, odwrotnie, czyli należą do zbioru B, a nie należą do zbioru A lub za pomocą różnicy symetrycznej elementy, które nie należą do części wspólnej zbiorów A i B.
Przykład:
A = {0, 1, 2, 3} B = {2, 3, 4, 5} print("Różnica A-B:", A - B) print("Różnica B-A:", B - A) print("Różnica symetryczna:", A ^ B)
Efekt:
Różnica A-B: {0, 1} Różnica B-A: {4, 5} Różnica symetryczna: {0, 1, 4, 5}
I tak:
- pierwsza linia: elementy, które należą do zbioru A, ale nie należą do zbioru B
- druga linia: elementy, które należą do zbioru B, ale nie należą do zbioru A
- trzecia linia: elementy nie będące częścią wspólną zbiorów A i B
To samo działanie mają metody:
print("Różnica A-B:", A.difference(B)) print("Różnica B-A:", B.difference(A)) print("Różnica symetryczna:", A.symmetric_difference(B))
Podzbiory
Sprawdzenie czy zbiór B jest podzbiorem zbioru A, czyli czy wszystkie elementy zbioru B znajdują się w zbiorze A:
A = {0, 1, 2, 3} B = {1, 2} print("Czy zbiór B jest podzbiorem zbioru A:", B.issubset(A))
Wartość True, tak, zbiór B jest podzbiorem zbioru A. Wszystkie elementy zbioru B {1,2} znajdują się w zbiorze A.
Ekwiwalent <=.
Sprawdzenie czy zbiór B jest superzbiorem zbioru A. Czyli czy zawiera wszystkie elementy zbioru A.
A = {0, 1, 2, 3} B = {0, 1, 2, 3, 4} print("Czy zbiór B jest podzbiorem zbioru A:", B.issuperset(A))
Efekt: True. Zbiór B zawiera wszystkie elementy zbioru A. Ekwiwalent >=.
Inne metody do wykonania na zbiorach:
- A.update(B) – zwraca zbiór A wraz z elementami dodanymi ze zbioru B
- A.intersection_update(B) – zwraca zbiór A z zachowanymi elementami znalezionymi również w zbiorze B
- A.difference_update(B) – zwraca zbiór A po usunięciu elementów znalezionych w zbiorze B
- A.symmetric_difference_update(B) – zwraca zbiór A po usunięciu elementów wspólnych ze zbiorem B
- A.discard(x) – usuwa element x ze zbioru A
- A.pop() – usuwa i zwraca pierwszy element zbioru A
- A.clear() – usuwa wszystkie elementy zbioru A