Skip to content

Instantly share code, notes, and snippets.

@NicolasT
Created August 18, 2009 21:15
Show Gist options
  • Save NicolasT/169980 to your computer and use it in GitHub Desktop.
Save NicolasT/169980 to your computer and use it in GitHub Desktop.
def interleave(*iters):
iters = [iter(i) for i in iters]
while True:
stop_loop = False
values = list()
for i in iters:
try:
values.append(i.next())
except StopIteration:
stop_loop = True
break
if stop_loop:
break
for value in values:
yield value
if __name__ == '__main__':
l1 = xrange(5)
l2 = xrange(10, 20)
l3 = xrange(100, 300)
print list(interleave(l1, l2, l3))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment