Casting an 'enumerate' object destroys it?? Is that supposed to happen, or is it a bug? For example: a = ['a', 'b', 'c'] e = enumerate(a) print dict(e) print dict(e) Result: {0: 'a', 1: 'b', 2: 'c'} {}