iterating over a list as if it were a circular list

Chris Rebert clp2 at
Thu Mar 7 10:38:32 CET 2013

On Mar 7, 2013 1:29 AM, "Sven" <svenito at> wrote:
> Stupid keyboard shortcuts, sent it too early. Apologies
> 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.
> Additionally, what if I wanted to pull a random element from N, but I
want to ensure all elements from N have been used before starting to pick
already chosen random elements again.
> So far I thought of duplicating the list and removing the randomly chosen
elements from the list, and when it's empty, re-copying it. But that seems
a little "wrong" if you know what I mean.

Just iterate over the list in order, and random.shuffle() the list each
time you reach the end of it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Python-list mailing list