Method 1: Using a For Loop with the append()
Method
This traditional approach involves initializing an empty list and then appending each processed item to the list within a for loop. It’s simple and explicit, making it great for beginners to understand what’s going on.
Here’s an example:
my_list = [] for i in range(1, 11): my_list.append(i**2)
The output of this code snippet will be the list: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
.
This code snippet creates a list called my_list
, then iterates over a range of numbers from 1 to 10, squares each number, and appends the result to the list.
Method 2: List Comprehension
List comprehension is a concise way to create lists. It consists of brackets containing an expression followed by a for
clause, then zero or more for
or if
clauses. Itβs highly readable and often more efficient than using a plain for loop.
Here’s an example:
my_list = [i**2 for i in range(1, 11)]
The output of this code snippet will be the same list: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
.
The list comprehension iterates over the range, squares each number and collects the results directly into a new list.
Method 3: Using the map()
Function
Using Pythonβs built-in map()
function allows you to apply a function to each item in an iterable and convert the result into a list. This can be particularly useful when using pre-defined functions.
Here’s an example:
my_list = list(map(lambda x: x**2, range(1, 11)))
The output will once again be: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
.
This code passes a lambda function that squares a number to the map()
function along with a range, then converts the map object to a list.
Method 4: Using the filter()
Function
Similar to map()
, the filter()
function allows you to filter items in an iterable. When combined with a list constructor, it builds a list containing only items where the filter function returns True.
Here’s an example:
my_list = list(filter(lambda x: x % 2 == 0, range(1, 11)))
And the output of this code snippet will be: [2, 4, 6, 8, 10]
.
This snippet uses filter()
to retain only even numbers from a range and then converts the result to a list.
Bonus One-Liner Method 5: Using a Generator Expression with list()
Generator expressions are similar to list comprehensions but with parentheses instead of brackets. They are more memory efficient and can also be directly converted into a list.
Here’s an example:
my_list = list(i**2 for i in range(1, 11))
The output will be: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
.
This one-liner code uses a generator expression to square each number in the range yielding a generator, which is then converted into a list.
Summary/Discussion
- Method 1: Using a For Loop with
append()
. Strengths: Explicit and easy to understand. Weaknesses: Can be verbose and less efficient than other methods. - Method 2: List Comprehension. Strengths: More concise and often faster than a traditional for loop. Weaknesses: Can be less readable when complex.
- Method 3: Using the
map()
Function. Strengths: Clean syntax for applying a function to each item. Weaknesses: Requires converting the map object to a list, and the need for lambda functions can be less readable. - Method 4: Using the
filter()
Function. Strengths: Good for conditional inclusion of items. Weaknesses: Requires an additional function to determine inclusion. - Bonus Method 5: Using a Generator Expression. Strengths: Memory efficient and can be written as a one-liner. Weaknesses: Slightly less readable and known among beginners.