List comprehension is a concise way to create lists in Python. It is a syntactic construct that allows you to create a new list by specifying the elements you want to include using a single line of code. List comprehensions are powerful and unique to Python because they provide a more readable, efficient, and elegant way to create lists than traditional methods like loops.
Here’s the general syntax for a list comprehension:
[expression for item in iterable if condition]
expression
represents the value you want to include in the new list.item
is a temporary variable used to iterate through theiterable
.iterable
is any object that can be looped over, such as a list, tuple, or string.condition
(optional) is a filter that includes only the items that meet the specified condition.
For example, let’s create a list of squares of even numbers between 1 and 10 using list comprehension:
squares = [x**2 for x in range(1, 11) if x % 2 == 0] print(squares) // Output: [4, 16, 36, 64, 100]
List comprehensions are not limited to lists; you can also create set comprehensions and dictionary comprehensions using a similar syntax.
While list comprehensions are a unique feature of Python, other programming languages have similar constructs, such as list comprehensions in Haskell or collection comprehensions in F#. However, the syntax and implementation might differ from Python’s version.
There are also other types of comprehension, including list set comprehension and dictionary comprehension.
For example, let’s double the values in a dictionary:
nums = {'a': 1, 'b': 2, 'c': 3} double_nums = {k:v*2 for (k,v) in nums.items()} print(double_nums) //Output: {'a': 2, 'b': 4, 'c': 6}
Set comprehension looks similar:
nums = [1, 2, 3, 4, 5] nums_set = newSet = {element*3 for element in nums} print(nums) print(nums_set) //Output: [1, 2, 3, 4, 5] {3, 6, 9, 12, 15}