Some performance considerations
So, we've seen that we have many different ways to achieve the same result. We can use any combination of map
, zip
, filter
, or choose to go with a comprehension, or maybe choose to use a generator, either function or expression. We may even decide to go with for
loops: when the logic to apply to each running parameter isn't simple, they may be the best option.
Other than readability concerns though, let's talk about performances. When it comes to performances, usually there are two factors which play a major role: space and time.
Space means the size of the memory that a data structure is going to take up. The best way to choose is to ask yourself if you really need a list (or tuple) or if a simple generator function would work as well. If the answer is yes, go with the generator, it'll save a lot of space. Same goes with functions: if you don't actually need them to return a list or tuple, then you can transform them in generator functions as well.
Sometimes...