Flash cards
Review the key moves
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.
Which statement best captures the main point of this lesson?
Complete the missing token from the example code.
___ = ["apple", "banana", "cherry", "kiwi", "mango"]Put the learning moves in the order that makes the concept easiest to apply.
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:
ifIterable
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".