- publishing free software manuals
An Introduction to Python
by Guido van Rossum and Fred L. Drake, Jr.
Paperback (6"x9"), 124 pages
ISBN 0954161769
RRP £12.95 ($19.95)

Sales of this book support the Python Software Foundation! Get a printed copy>>>

5.6 Looping Techniques

When looping through dictionaries, the key and corresponding value can be retrieved at the same time using the iteritems() method.

    >>> knights = {'gallahad': 'pure', 'robin': 'brave'}
    >>> for k, v in knights.iteritems():
    ...     print k, 'the', v
    ...
    gallahad the pure
    robin the brave

When looping through a sequence, the position index and corresponding value can be retrieved at the same time using the enumerate() function.

    >>> for i, v in enumerate(['tic', 'tac', 'toe']):
    ...     print i, v
    ...
    0 tic
    1 tac
    2 toe

To loop over two or more sequences at the same time, the entries can be paired with the zip() function.

    >>> questions = ['name', 'quest', 'favorite color']
    >>> answers = ['lancelot', 'the holy grail', 'blue']
    >>> for q, a in zip(questions, answers):
    ...     print 'What is your %s?  It is %s.' % (q, a)
    ...	
    What is your name?  It is lancelot.
    What is your quest?  It is the holy grail.
    What is your favorite color?  It is blue.

To loop over a sequence in reverse, first specify the sequence in a forward direction and then call the reversed() function.

    >>> for i in reversed(xrange(1,10,2)):
    ...     print i
    ...
    9
    7
    5
    3
    1

To loop over a sequence in sorted order, use the sorted() function which returns a new sorted list while leaving the source unaltered.

    >>> basket = ['apple', 'orange', 'apple', 'pear',
                  'orange', 'banana']
    >>> for f in sorted(set(basket)):
    ...     print f
    ... 	
    apple
    banana
    orange
    pear
ISBN 0954161769An Introduction to PythonSee the print edition