In this chapter, we explored the concept of iteration and generation a bit more deeply. We looked at the map, zip, and filter functions in detail, and learned how to use them as an alternative to a regular for loop approach.
Then we covered the concept of comprehensions, for lists, dictionaries, and sets. We explored their syntax and how to use them as an alternative to both the classic for loop approach and also to the use of the map, zip, and filter functions.
Finally, we talked about the concept of generation, in two forms: generator functions and expressions. We learned how to save time and space by using generation techniques and saw how they can make possible what wouldn't normally be if we used a conventional approach based on lists.
We talked about performance, and saw that for loops are last in terms of speed, but they provide the best readability and flexibility...