Enumerate and Zip Only Go Once

letters = ['a', 'b', 'c']
e = enumerate(letters)
print(list(e))
print(list(e))

z = zip([1, 2, 3], ['x', 'y', 'z'])
print(list(z))
print(list(z))

What gets printed by the two second print(list(...)) calls?

A

Both raise StopIteration as an uncaught exception, crashing the program.

B

Both print [].

C

Both reprint their original contents, since list() re-derives the pairs from the underlying sequences.

D

e reprints its contents but z prints [], since zip is stricter about exhaustion than enumerate.