Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
from collections import deque<br />
>>> d = deque(["task1", "task2", "task3"])<br />
>>> d.append("task4")<br />
>>> print "Handling", d.popleft()<br />
Handling task1<br />
unsearched = deque([starting_node])<br />
def breadth_first_search(unsearched):<br />
node = unsearched.popleft()<br />
for m in gen_moves(node):<br />
if is_goal(m):<br />
return m<br />
unsearched.append(m)<br />
Biblioteca oferă, tot pentru alternativa la implementarea cu liste, şi modulul bisect cu funcţii pentru manipularea<br />
listelor sortate :<br />
>>> import bisect<br />
>>> scores = [(100, ’perl’), (200, ’tcl’), (400, ’lua’), (500, ’python’)]<br />
>>> bisect.insort(scores, (300, ’ruby’))<br />
>>> scores<br />
[(100, ’perl’), (200, ’tcl’), (300, ’ruby’), (400, ’lua’), (500, ’python’)]<br />
Modulul heapq conţine funcţii pentru implementarea de heap 2 utilizând listele standard.Valoarea intrării celei<br />
mai mici este ţinută permanent la poziţia zero. Acest lucru este util pentru aplicaţiile în care se accesează repetitiv<br />
elementul cel mai mic, dar nu se doreşte o sortare completă a listei:<br />
>>> from heapq import heapify, heappop, heappush<br />
>>> data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]<br />
>>> heapify(data) # rearanjeaza lista in ordinea heap<br />
>>> heappush(data, -5) # se adauga o noua intrare<br />
>>> [heappop(data) for i in range(3)] # aduce cele mai mici trei intrari<br />
[-5, 0, 1]<br />
11.8 Aritmetica în virgulă flotantă zecimală<br />
Modulul decimal oferă, pentru aritmetica în virgulă flotantă, tipul de data Decimal.Comparând–o cu clasa<br />
predefinită float, implementată pentru lucrul în virgulă flotantă binară, noua clasă este necesară în aplicaţiile<br />
financiare şi, în general, în aplicaţiile care necesită : o reprezentare zecimală exactă, o precizie ridicată, o rotunjire<br />
impusă foarte bună, poziţionarea zecimalelor semnificative. O altă întrebuinţare ar fi pentru aplicaţiile în care<br />
utilizatorul doreşte confruntarea calculelor cu cele executate manual.<br />
De exemplu, calculând taxa de 5% pentru o convorbire telefonică de 70 de cenţi, folosind aritmetica în virgulă<br />
flotantă zecimalâ şi cea binară se obţin rezultate diferite :<br />
2 Heap = porţiune de memorie rezervată pentru a fi utilizată de un program ca zonă de stocare temporară a unor structuri de date a căror<br />
mărime, sau existenţă nu se pot determina decât în timpul rulării programilui.<br />
80 Capitolul 11. Pe scurt despre Standard Library - partea II