Hoguzzos - 2014-07-10 22:12:17

ŹRÓDŁO : http://szgrabowski.kis.p.lodz.pl/Python-podstawy.html
Zbiory.
Zbiór (ang. set) przypomina słownik, tyle że do słowników wrzuca się pary (klucz-wartość), a do zbiorów pojedyńcze elementy.  Zbiór jest kolekcją, w której elementy nie mogą się powtarzać, a ich kolejność nie jest ustalona.  Innymi słowy, zbiory [1,3,2], [1,2,3], [3,2,1,2,3] są wszystkie identyczne.


Kod:

zb = set()

zb.add(3); zb.add(1); zb.add(3)  # można zapodać wiele instrukcji w linii - ze średnikami

zb.add(-2)  # ale zaleca się pisać każdą instrukcję w osobnej linii

for i in zb:

  print i,

 

print zb[0]  # błąd!  TypeError: 'set' object does not support indexing

Zbiór można zainicjować listą:

Kod:

zb = set([4, 1, 2, 10.4])

Dla zbiorów działają relacje: ==, !=, a także >=, <=, którymi sprawdzamy, czy jeden zbiór jest podzbiorem (nadzbiorem) drugiego, np.:

Kod:

A = set([3, 1, 8])

B = set([1,8])

B <= A   # zwraca True

Mamy też równoważne metody issubset, issuperset (wypróbuj).



Oprócz dodawania elementów, można elementy usuwać (metoda discard lub remove; różnią się tylko przy próbie usunięcia elementu, którego nie ma w zbiorze – sprawdź jak!), działa też len.  Przynależność do zbioru sprawdzamy za pomocą in, tj.:

Kod:

3 in A  # zwróci True

8 not in B # zwróci False

Dostępne są operacje mnogościowe na zbiorach: suma (metoda union albo operator |, działają tak samo), przekrój (część wspólna) (metoda intersection albo operator &), różnica (metoda difference albo operator -) i różnica symetryczna (metoda symmetric_difference albo operator ^).  Przykłady:

Kod:

C = (A - B).union([-1,2,4])

D = set([7,8]) & B

E = A.symmetric_difference(set([1,2,3,5]))

Istnieje też typ frozenset, tj. zbiór niemutowalny.

Kod:

X = frozenset([5, 1, 2])

X.add(3)  # AttributeError: 'frozenset' object has no attribute 'add'

Obiekty typu frozenset, w przeciwieństwie do set, mogą być kluczami w słownikach oraz elementami innych zbiorów.  Można też „zamrażać” i „rozmrażać”, np. frozD = frozenset(D).

www.djronnie.pun.pl www.chemiaumcs.pun.pl www.talesofshinobi.pun.pl www.chomiki-pbf.pun.pl www.sgaming.pun.pl