Pythonic iterators and generators
One of the first things you learn in programming is to apply a series of instructions to a set of elements.
Given it's ubiquitous nature and given the culture of python to simplify such tasks, decades of development and thought has gone into making this as convenient as possible for all possible use cases. While the functional ways of iterating like map, reduce and filter exist, list-comprehensions and the functions in itertools module enable several pythonic imperative alternatives that cover a gamut of possible use cases.
This talk is an interactive exercise using iPython notebook to cover many of these use cases to enable better iteration including writing of your own iterators and generators and when you would want to do such a thing.