Python's "for" loops seem quite simple. But actually, the iterator protocol is deeply embedded in the language. This course, with more than six hours of videos and a dozen different hands-on exercises, will teach you what you need to take advantage of the protocol in your own code — with iterator classes, generator functions, coroutines, generator functions, and even the "itertools" module.
If you've been programming in Python for a while, then you'll want to take this course. It'll pull back the curtain on how the language works, and will let you write more flexible, elegant, and efficient code.