Einen Iterator durchwürfeln

Manchmal kann es ganz nützlich sein, wenn man einen Iterator per Zufall neu sortiert. Dazu kann diese Funktion nützlich sein:

   1 def randomized(iterable, seed=None):
   2     iterable = list(iterable)
   3     if seed is None:
   4         from random import shuffle
   5         shuffle(iterable)
   6     else:
   7         from random import Random
   8         Random(seed).shuffle(iterable)
   9     return iter(iterable)

Aufgerufen wird das ganze dann beispielsweise so:

   1 for item in randomized(xrange(10)):
   2     print item

Einen Iterator durchwürfeln (last edited 2009-06-17 16:14:20 by localhost)