Python Tutorials · Python Lists

List Comprehension

Learn all about List Comprehension in this comprehensive tutorial.

5 min read beginner
  • List comprehension offers a shorter syntax when you want to create a new list based on the values of an existing list.
  • The return value is a new list, leaving the old list unchanged.

List Comprehension

List comprehension offers a shorter syntax when you want to create a new list based on the values of an existing list.

Example:

Based on a list of fruits, you want a new list, containing only the fruits with the letter "a" in the name.

Without list comprehension you will have to write a for statement with a conditional test inside:

python

With list comprehension you can do all that with only one line of code:

python

The Syntax

The return value is a new list, leaving the old list unchanged.

The condition is like a filter that only accepts the items that evaluate to True.

python

The condition if x != "apple"  will return True for all elements other than "apple", making the new list contain all fruits except "apple".

The condition is optional and can be omitted:

python

The iterable can be any iterable object, like a list, tuple, set etc.

python

Same example, but with a condition:

python

The expression is the current item in the iteration, but it is also the outcome, which you can manipulate before it ends up like a list item in the new list:

python

You can set the outcome to whatever you like:

python

The expression can also contain conditions, not like a filter, but as a way to manipulate the outcome:

python

The expression in the example above says:

"Return the item if it is not banana, if it is banana return orange".

Module quiz

2 questions
1

Which of the following is true about List Comprehension?

2

What is the most common pitfall when working with List Comprehension?

Answer all questions to submit.