def generate_loop(): for i in range(10): print(i) # should raise StopIteration when i > 5 k = next(j for j in range(5) if j == i) print(k) yield k def generate(): # should raise StopIteration k = next(j for j in range(5) if j == 6) yield k print(list(generate_loop())) print(list(generate())) m = next(l for l in range(5) if l == 6)