Skip to content

Instantly share code, notes, and snippets.

@razamatan
razamatan / randomize iterator in python
Created December 10, 2010 10:10
randomize python iterator
from random import shuffle, randrange
def randomize(iterable, bufsize=1000):
''' generator that randomizes an iterable. space: O(bufsize). time: O(n). '''
buf = list()
for x in iterable:
if len(buf) == bufsize:
i = randrange(bufsize)
yield buf[i]
buf[i] = x