How do I debug code which uses generators and iterators? I found that adding a for loop with print statements consumes the generator/iterator and therefore breaks the rest of the code. Is it possible to inspect the "contents" of a generator/iterator without consuming the elements? More specifically, I have something like this: result = map(func, x) Now I want to see what result is. I also want to see the value returned by applying a function to each element in result. In my actual code, I am getting the element in result which gives the minimum value of this function: best = min(result, key=my_key) Now min() is very handy, but I am getting incorrect behavior and need to figure out why. What are some tools I can use to debug something like this? p.s. I am using PyCharm. I am pretty comfortable with the interactive debugger but still cannot figure out how to view everything that is going on here. Continue reading...