Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from collections import deque
- def partition(predicate, iterable):
- buffers = dict(((True, deque()), (False, deque())))
- def values(x, iterable=iter(iterable)):
- while True:
- while not buffers[x]:
- item = iterable.next()
- buffers[bool(predicate(item))].append(item)
- yield buffers[x].popleft()
- return values(True), values(False)
- if __name__ == '__main__':
- print map(list, partition(lambda x: x % 2, range(10)))
Add Comment
Please, Sign In to add comment