List comprehension vs map

List comprehension and map() are both used to create new lists in Python, but they are used in slightly different ways.

List comprehension is a more concise way to create a new list by applying an operation to each element in an existing list. It is written as a single line of code and has the following syntax:

new_list = [expression for item in old_list]

Watch a course Python - The Practical Guide

For example, the following code uses list comprehension to create a new list of the squares of the numbers in an existing list:

old_list = [1, 2, 3, 4, 5]
new_list = [x**2 for x in old_list]
print(new_list)
# Output: [1, 4, 9, 16, 25]

map() is a built-in function that takes a function and an iterable as arguments and applies the function to each element of the iterable. It returns a map object, which can be converted to a list using the list() function. The syntax is:

new_list = list(map(function, iterable))

For example, the following code uses map() to create a new list of the squares of the numbers in an existing list:

old_list = [1, 2, 3, 4, 5]
new_list = list(map(lambda x: x**2, old_list))
print(new_list)
# Output: [1, 4, 9, 16, 25]

In most cases list comprehension is more readable, but map can be useful when you want to use a function that you have defined earlier.