## DEV Community is a community of 554,498 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

# List Comprehensions in Python

List comprehensions provide a way to create lists, where each element will be derived from an operation applied to each member of another sequence or iterable or to create another a subsequence with elements that satisfy particular condition.

#### Use-case 1: Lets calculate squares of all numbers from 1 to 10

Without List Comprehension:

``````squares = []

for x in range(10):
squares.append(x**2)

print squares
``````

With List Comprehension:

List comprehension consists of square brackets containing an expression followed by a one or multiple for loops or if clauses. Now, lets calculate squares using list comprehension

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

#### Use-case 2: If the resulting data is a tuple, the expression must be parenthesised.

Example: Lets fetch indices of matching elements from two lists. For example:
first_list = [2, 5, 6]
second_list = [5, 6, 1]
Output : [(1, 0), (2, 1)]

Without List Comprehension:

``````first_list = [2, 5, 6]
second_list = [5, 6, 1]

result = []

for i in range(len(first_list)):
for j in range(len(second_list)):
if first_list[i] == second_list[j]:
result.append((i, j))

print result
``````

With List Comprehension:

``````first_list = [2, 5, 6]
second_list = [5, 6, 1]

result = [(i, j) for i in range(len(first_list)) for j in range(len(second_list)) if first_list[i] == second_list[j]]

print result
``````

#### Use-case 3: Nested list comprehension

Nested list comprehension is a list comprehension within another list comprehension just like nested for loops.

Lets take a popular example of flattening a 2D matrix:

matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]

Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]

Without List Comprehension:

``````matrix = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
result = []

for row in matrix:
for val in row:
result.append(val)

print result
``````

With List Comprehension:

``````matrix = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]

result = [val for row in matrix for val in row]

print result
``````

`We can use multiple for loops or if clauses to achieve any result but list comprehensions make it very concise and readable.`

Happy Coding! 👨‍💻