Here's the code:
def is_subsequence(a, b):
b = iter(b)
gen = ((i in b) for i in a)
print(gen)
for i in gen:
print(i)
return all(((i in b) for i in a))
res1 = is_subsequence([1, 3, 5], [1, 2, 3, 4, 5])
res2 = is_subsequence([1, 4, 3], [1, 2, 3, 4, 5])
The result is that res1==False and res2==False. Apparently the result for res1 is incorrect.
When I comment out the for loop print, res1==True and res2==False, which is correct.
I'm confused. Can someone explain why?