code: def roundrobin(*iterables):
      """Yields an item from each iterable, alternating between them.
  
          >>> list(roundrobin('ABC', 'D', 'EF'))
          ['A', 'D', 'E', 'B', 'F', 'C']
  
      This function produces the same output as :func:`interleave_longest`, but
      may perform better for some inputs (in particular when the number of
      iterables is small).
  
      """
      # Recipe credited to George Sakkis
      pending = len(iterables)
      nexts = cycle(iter(it).__next__ for it in iterables)
      while pending:
          try:
              for next in nexts:
                  yield next()
          except StopIteration:
              pending -= 1
              nexts = cycle(islice(nexts, pending))
  
imports: import math
  import operator
  from collections import deque
  from collections.abc import Sized
  from functools import partial, reduce
  from itertools import chain, combinations, compress, count, cycle, groupby, islice, product, repeat, starmap, tee, zip_longest
  from random import randrange, sample, choice
label_desc: Use image node_id 17 for calling a global function with example usage: roundrobin() without return types