List comprehension is used to dynamically generate lists.
Generators are functions used to create an iterable sequence of values.