Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from itertools import tee
- from collections import deque
- def nwise(iterable, n=2):
- "s -> (s0,s1), (s1,s2), (s2, s3), ..."
- temp = deque()
- for elem in iterable:
- temp.append(elem)
- if len(temp) == n:
- yield tuple(temp)
- temp.popleft()
- assert list(nwise([])) == []
- assert list(nwise(['s0'])) == []
- assert list(nwise(['s0', 's1', 's2'])) == [('s0', 's1'), ('s1', 's2')], list(nwise(['s0', 's1', 's2']))
- assert list(nwise(['s0', 's1', 's2', 's3'])) == [('s0', 's1'), ('s1', 's2'), ('s2', 's3')], res
- assert list(nwise(['s0', 's1', 's2', 's3', 's4', 's5', 's6'], n=4)) == [
- ('s0', 's1', 's2', 's3'), ('s1', 's2', 's3', 's4'), ('s2', 's3', 's4', 's5'), ('s3', 's4', 's5', 's6')
- ]
- assert list(nwise(['s0', 's1', 's2', 's3', 's4'], n=3)) == [
- ('s0', 's1', 's2'), ('s1', 's2', 's3'), ('s2', 's3', 's4')
- ]
- assert list(nwise(['s0', 's1', 's2', 's3', 's4', 's5', 's6'], 5)) == [
- ('s0', 's1', 's2', 's3', 's4'), ('s1', 's2', 's3', 's4', 's5'), ('s2', 's3', 's4', 's5', 's6')
- ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement