You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
5.8 Compararea secvenţelor<br />
Obiectelor de tip secvenţă pot fi comparate cu obiecte secvenţă de acelaşi tip. Comparaţiile între secvenţe folosesc<br />
principiile ordonării lexicografice: se compară întâi primul element din fiecare listă. Dacă diferă este afişat rezultatul,<br />
dacă sunt egale se trece la compararea următoarelor două elemente, şi aşa mai departe până la epuizarea<br />
uneia dintre liste. Dacă elementele ce urmează a fi comparate sunt la râdul lor liste, compararea lexicografică<br />
are loc recursiv. Dacă toate elementele celor două liste sunt egale se consideră că listele sunt egale. Dacă una<br />
dintre secvenţe este o subsecvenţă iniţială a celeilalte, atunci secvenţă mai scurtă este cea mai mică. Ordonarea<br />
lexicografică pentru şiruri foloseşte ordinea ASCII a caracterelor. Exemple de comparaţii între secvencţe de acelaşi<br />
tip:<br />
(1, 2, 3) < (1, 2, 4)<br />
[1, 2, 3] < [1, 2, 4]<br />
’ABC’ < ’C’ < ’Pascal’ < ’<strong>Python</strong>’<br />
(1, 2, 3, 4) < (1, 2, 4)<br />
(1, 2) < (1, 2, -1)<br />
(1, 2, 3) == (1.0, 2.0, 3.0)<br />
(1, 2, (’aa’, ’ab’)) < (1, 2, (’abc’, ’a’), 4)<br />
<strong>Python</strong> permite şi compara obiecte de tipuri diferite. Rezultatul este însă arbitrar: tipurile fiind ordonate după<br />
numele lor. În concluzie o listă va fi întotdeauna mai mică decât un şir, un şir mai mic decât o pereche, etc.<br />
Comparaţiile între numere se fac luând în consideraţie valoarea numerică chiar dacă numerele sunt de tipuri<br />
diferite, şi ca atare 0 va fi egal cu 0.0, etc. 2<br />
2 Regulile de comparare între obiecte de tipuri diferite nu ar trebui considerate de foarte mare încredere;<br />
acestea pot fi schimbate la versiuni viitoare ale limbajului.<br />
36 Capitolul 5. Structuri de date