PYTHON

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