iterating over a list as if it were a circular list

Roy Smith roy at panix.com
Thu Mar 7 08:37:07 EST 2013


In article <mailman.2993.1362648214.2939.python-list at python.org>,
 Sven <svenito at gmail.com> wrote:

> I was wondering what the best approach for the following might be.
> 
> Say you have a list P of points and another list N of other items. You can
> always assume that
> 
> len(N) <= len(P)
> 
> Now I would like to iterate over P and place one N at each point. However
> if you run out of N I'd like to restart from N[0] and carry on until all
> the points have been populated.
> So far I've got
> 
> for point in points:

I'm not completely following what you're trying to do, but I think what 
you're looking for is some combination of zip() and itertools.cycle().

pairs = zip(P, cycle(N))



More information about the Python-list mailing list