Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
t = 12345, 54321, ’hello!’<br />
>>> t[0]<br />
12345<br />
>>> t<br />
(12345, 54321, ’hello!’)<br />
>>> # enumerarile pot fi imbricate, combinate<br />
... u = t, (1, 2, 3, 4 ,5)<br />
>>> u<br />
((12345, 54321, ’hello!’), (1, 2, 3, 4 ,5))<br />
După cum puteţi vedea perechile(enumerările) sunt afişate între paranteze astfel încât enumerările sau perechile<br />
îmbricate să fie interpretate corect. Perechile pot fi introduse cu sau fără paranteze, însă, adesea, parantezele sunt<br />
necesare.<br />
Perechile au multe utilizări. De exemplu : perechi de coordonate (x,y), înregistrările angajaţilor dintr-o bază de<br />
date, etc. Puteţi face o analogie (atâta timp cât rămâne numai o analogie menită să vă ajute la înţelegerea acestui tip<br />
de date) între tipurile de date compuse ce pot fi definite cu struct din C++, şi perechile din <strong>Python</strong>. Perechile,<br />
la fel ca şirurile nu pot fi modificate: nu pot fi atribuite valori unui anumit element al unei perechi (puteţi însă să<br />
simulaţi o modificare folosind alte metode). Este posibil să creaţi perechi care conţin obiecte modificabile, cum<br />
sunt listele de exemplu.<br />
O problemă deosebită o constituie crearea perechilor cu zero sau un element. Există însă câteva ”trucuri” de<br />
sintaxă care pot fi folosite pentru a rezolva această problemă. Perechile vide pot fi construite folosind o pereche<br />
de paranteze fără nimic între ele. O pereche cu un singur element poate fi construită specificând valoarea care va<br />
fi conţinută în pereche urmată de o virgulă. Cam neplăcut, dar funcţionează:<br />
>>> empty = ()<br />
>>> singleton = ’hello’, # >> len(empty)<br />
0<br />
>>> len(singleton)<br />
1<br />
(’hello’,)<br />
Instrucţiunea t = 12345, 54321, ’Salut !’ este un exemplu de împachetare. Valorile 12345, 54321 şi<br />
’Salut !’ sunt “împachetate” împreună. Operaţia inversă este de asemenea posibilă:<br />
>>> x, y, z = t<br />
Această operaţie este numită suficient de elocvent ”despachtarea unei secvenţe”. Despachetarea unei secvenţe<br />
necesită ca lista de variabile de la stânga atribuirii să conţină tot atâtea variabile cât secvenţa împachetată de la<br />
dreapta. De observat este faptul că îmbricarea nu este decât o combinaţie succesivă de împachetări sau despachetări!<br />
Ingenios, nu!<br />
Există o asimetrie aici: în timp ce o împachetare va genera întotdeauna o pereche, despachtarea funcţionează<br />
pentru orice fel de secvenţă.<br />
5.4 Seturi<br />
Limbajul <strong>Python</strong> are şi un tip de date pentru seturi. Un set este o colecţie neordonată de elemente unice (făra<br />
duplicate). Esenţa ei constă în testarea membrilor şi eliminarea duplicatelor. Obiectele de tip set suportă, de<br />
asemenea, operaţii matematice ca : uniunea, intersecţia, diferenţa şi diferenţa simetrică.<br />
Iată o scurtă demonstraţie :<br />
32 Capitolul 5. Structuri de date