Guest User

Untitled

a guest
Jan 21st, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.48 KB | None | 0 0
  1. from collections import deque
  2.  
  3.  
  4. def partition(predicate, iterable):
  5. buffers = dict(((True, deque()), (False, deque())))
  6.  
  7. def values(x, iterable=iter(iterable)):
  8. while True:
  9. while not buffers[x]:
  10. item = iterable.next()
  11. buffers[bool(predicate(item))].append(item)
  12.  
  13. yield buffers[x].popleft()
  14.  
  15. return values(True), values(False)
  16.  
  17.  
  18. if __name__ == '__main__':
  19. print map(list, partition(lambda x: x % 2, range(10)))
Add Comment
Please, Sign In to add comment