Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.57 KB | None | 0 0
  1. from itertools import chain, repeat
  2.  
  3. def interleave(iterables, repeat_rates=None):
  4. if repeat_rates is not None and len(iterables) != len(repeat_rates):
  5. raise ValueError('repeat_rates must be either None or be same length with iterables')
  6.  
  7. iterators = []
  8. for i, iterable in enumerate(iterables):
  9. if repeat_rates:
  10. rate = repeat_rates[i]
  11. if rate > 1:
  12. iterable = chain.from_iterable(repeat(iterable, rate))
  13. iterators.append(iter(iterable))
  14.  
  15. for item in chain.from_iterable(zip(*iterators)):
  16. yield item
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement