Iterating Through List or Tuple

Samir spython01 at gmail.com
Tue Jul 22 23:43:10 CEST 2008


Is there a way to loop or iterate through a list/tuple in such a way
that when you reach the end, you start over at the beginning?  For
example, suppose I define a list "daysOfWeek" such that:

>>> daysOfWeek = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']

If today is Sunday, I can set the variable "day" to today by:

>>> i = iter(daysOfWeek)
>>> day = i.next()
>>> print day
sunday

If I want to find out the day of the week 2 days from now, then this
code works ok:

>>> for x in xrange(2): day = i.next()

>>> print day
tuesday

However, when extending my range beyond the number of items in the
list, I receive an error.  For example, if I want to find out the day
of the week 11 days from today, I get this:

>>> for x in xrange(11): day = i.next()


Traceback (most recent call last):
  File "<pyshell#87>", line 1, in <module>
    for x in xrange(11): day = i.next()
StopIteration

Is there a way to easily loop through a list or tuple (and starting
over at the beginning when reaching the end) without having to resort
to an "if" or "while" statement?

(My question concerns the more general use of lists and tuples, not
necessarily determining days of the week.  I know about using "import
datetime" and "from calendar import weekday" but thought that using
the days of the week would best illustrate my problem.)

As always, thanks in advance.

Samir



More information about the Python-list mailing list