fork(1) download
  1. def numbered(obj, n, default=None):
  2. '''
  3. obj - итератор (или итерируемый объект)
  4. n - число объектов, которое нужно вернуть за раз
  5. default - дефолтное значение для отсутствующих элементов
  6. '''
  7. if not hasattr(obj, '__next__'):
  8. try:
  9. obj = iter(obj) # если не является итератором, оборачиваем через iter
  10. except Exception as exc:
  11. raise ValueError('obj must be an iterator or iterable') from exc
  12. flag = True
  13. while flag:
  14. out = []
  15. for step in range(n):
  16. try:
  17. out.append(next(obj))
  18. except StopIteration:
  19. if out:
  20. more = [default for _ in range(n-step)]
  21. out.extend(more)
  22. yield out
  23. flag = False
  24. break
  25. else:
  26. yield out
Success #stdin #stdout 0.02s 9164KB
stdin
Standard input is empty
stdout
Standard output is empty