So, we've seen that we have many different ways to achieve the same result. We can use any combination of
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 ...