List comprehension and generators
List comprehension is a special construct provided by Python to generate lists by writing in the way a mathematician would, by describing its content instead of writing about the way the content should be generated (with a classic for loop).
Let's see an example of this to better understand how it works:
#using list comprehension to generate a list of the first 50 multiples of 2
multiples_of_two = [x for x in range(100) if x % 2 == 0]
#now let's see the same list, generated using a for-loop
multiples_of_two = []
for x in range(100):
if x % 2 == 0:
multiples_of_two.append(x)Now, list comprehension is not meant to replace for loops altogether. They are a great help when dealing with loops that, like the earlier one, are creating a list. However, they aren't particularly recommended for those for loops that you write because of their side effects. This means you're not creating a list. You're most likely calling a function inside it or doing some other...