Programming4Fun

Programming4Fun - programujemy z pasją :)

  • Nie jesteś zalogowany.

Ogłoszenie


#1 2014-07-10 22:12:17

 Hoguzzos

http://winclub.pl/public/style_extra/team_icons/mod.png

Skąd: Za górami za lasami :D
Zarejestrowany: 2014-07-09
Posty: 56
Punktów :   

Kurs Pythona. Część 8.

Ź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).


http://img208.imageshack.us/img208/623/mnd1.jpg
http://images.cooltext.com/3860851.png

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi

[ Generated in 0.097 seconds, 7 queries executed ]


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.talesofshinobi.pun.pl www.akatsukifreinds.pun.pl www.chomiki-pbf.pun.pl www.sgaming.pun.pl www.chemiaumcs.pun.pl