import itertools
def roundrobin(iterables, sizes):
# 把每个可迭代对象转换为迭代器
iterators = [iter(iterable) for iterable in iterables]
# 使用 itertools.cycle 让 iterators 和 sizes 无限循环
for iterator, size in zip(itertools.cycle(iterators), itertools.cycle(sizes)):
# 对当前迭代器,按照当前 size 连续取 size 个元素
for _ in range(size):
try:
# 从迭代器中取下一个元素
yield next(iterator)
except StopIteration:
# 如果当前迭代器已耗尽,结束整个函数(return 会直接退出)
return