Summary
In this chapter, we explored the concepts 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 to construct lists, dictionaries, and sets. We explored their syntax and how to use them as an alternative to both the classic for
loop approach and the map()
, zip()
, and filter()
functions.
Finally, we talked about the concept of generators in two forms: generator functions and expressions. We learned how to save time and space by using generation techniques. We also saw how operations that are infeasible to perform with lists can be performed with generators instead.
We talked about performance and saw that for
loops come last in terms of speed, but they provide the best readability and flexibility to change. On the other hand, functions such as map()
and filter()
, and comprehensions, can be much faster...