bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/Python/Foundations
Python•Foundations

Python - List Comprehension

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind Python - List Comprehension?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

___ = ["apple", "banana", "cherry", "kiwi", "mango"]
3Order

Put the learning moves in the order that makes the concept easiest to apply.

Based on a list of fruits, you want a new list, containing only the fruits with the letter "a" in the name.
List comprehension offers a shorter syntax when you want to create a new list based on the values of an existing list.
List Comprehension

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:

Example

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []

for x in fruits:
  if "a" in x:

    newlist.append(x)
    print(newlist)

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

Example

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x
for x in fruits if "a" in x]
print(newlist)

The Syntax

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

Condition

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

Example

newlist = [x for x in fruits if x != "apple"]

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:

if

Iterable

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

range()

Same example, but with a condition:

Example

newlist = [x for x in range(10) if x < 5]

Expression

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:

Example

newlist = [x.upper()
for x in fruits]

You can set the outcome to whatever you like:

Example

newlist = ['hello' for x in fruits]

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

Example

newlist = [x if x != "banana" else "orange"
for x in fruits]

The expression in the example above says:

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

Previous

Python - Loop Lists

Next

Python - Sort Lists