Advertisement
Guest User

nwise

a guest
Mar 25th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.04 KB | None | 0 0
  1. from itertools import tee
  2. from collections import deque
  3.  
  4. def nwise(iterable, n=2):
  5.     "s -> (s0,s1), (s1,s2), (s2, s3), ..."
  6.     temp = deque()
  7.    
  8.     for elem in iterable:
  9.         temp.append(elem)
  10.         if len(temp) == n:
  11.             yield tuple(temp)
  12.             temp.popleft()
  13.  
  14.  
  15. assert list(nwise([])) == []
  16. assert list(nwise(['s0'])) == []
  17.  
  18. assert list(nwise(['s0', 's1', 's2'])) == [('s0', 's1'), ('s1', 's2')], list(nwise(['s0', 's1', 's2']))
  19.  
  20. assert list(nwise(['s0', 's1', 's2', 's3'])) == [('s0', 's1'), ('s1', 's2'), ('s2', 's3')], res
  21. assert list(nwise(['s0', 's1', 's2', 's3', 's4', 's5', 's6'], n=4)) == [
  22.     ('s0', 's1', 's2', 's3'), ('s1', 's2', 's3', 's4'), ('s2', 's3', 's4', 's5'), ('s3', 's4', 's5', 's6')
  23. ]
  24. assert list(nwise(['s0', 's1', 's2', 's3', 's4'], n=3)) == [
  25.     ('s0', 's1', 's2'), ('s1', 's2', 's3'), ('s2', 's3', 's4')
  26. ]
  27.  
  28. assert list(nwise(['s0', 's1', 's2', 's3', 's4', 's5', 's6'], 5)) == [
  29.     ('s0', 's1', 's2', 's3', 's4'), ('s1', 's2', 's3', 's4', 's5'), ('s2', 's3', 's4', 's5', 's6')
  30. ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement