Skip to content

Instantly share code, notes, and snippets.

@Killavus
Created September 26, 2015 17:51
Show Gist options
  • Save Killavus/2d413941c3cda4b13b68 to your computer and use it in GitHub Desktop.
Save Killavus/2d413941c3cda4b13b68 to your computer and use it in GitHub Desktop.
def iteratorAtomsDepleted(iteratorAtoms):
return all(map(lambda iteratorAtom: iteratorAtom[1], iteratorAtoms))
def combine(*args):
listIterators = [[iter(passedList), False] for passedList in args]
result = []
while (not iteratorAtomsDepleted(listIterators)):
for index, iteratorAtom in enumerate(listIterators):
try:
iterator, alreadyDone = iteratorAtom
if alreadyDone:
next
result.append(iterator.next())
except StopIteration:
listIterators[index][1] = True
return result
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment