# What are List Comprehensions?

02/07/2024

List Comprehensions are a concise way to create lists in Python. They provide a syntactically compact and readable way to generate lists from existing iterables, incorporating loops and conditional logic within a single line of code. List comprehensions are particularly useful for creating new lists by applying an expression to each item in a sequence, and optionally filtering elements based on a condition.

Syntax

The basic syntax of a list comprehension is:

[expression for item in iterable if condition]

• expression: The expression to evaluate and add to the new list.
• item: The variable that takes the value of the current element in the iterable.
• iterable: The collection or sequence being iterated over.
• condition (optional): A filter that only includes items in the new list if the condition is True.

Examples

1. Basic List Comprehension: This example generates a list of squares of numbers from 0 to 9.

squares = [x**2 for x in range(10)]

print(squares)  # Output: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

1. With Condition: This example creates a list of even numbers from 0 to 9.

evens = [x for x in range(10) if x % 2 == 0]

print(evens)  # Output: [0, 2, 4, 6, 8]

1. Nested Loops: List comprehensions can also include nested loops. This example generates a list of pairs (tuples) from two lists.

pairs = [(x, y) for x in range(3) for y in range(3)]

print(pairs)  # Output: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

1. Complex Expressions: This example creates a list of strings indicating whether numbers from 0 to 9 are even or odd.

parity = [‘evenif x % 2 == 0 elseoddfor x in range(10)]

print(parity)  # Output: [‘even’, ‘odd’, ‘even’, ‘odd’, ‘even’, ‘odd’, ‘even’, ‘odd’, ‘even’, ‘odd’]

• Conciseness:

List comprehensions allow for writing more concise and readable code compared to traditional loop-based list creation.

For those familiar with the syntax, list comprehensions can be more readable and expressive.

• Performance:

In many cases, list comprehensions can be faster than equivalent loops because they are optimized internally by Python.

Best Practices