6.6. Comprehension#
6.6.1. List Comprehension#
Unique to Python
Three variations
[ f(ele) for ele in sequence ]
[ f(ele) for ele in sequence if condition ]
[ f(ele) if condition else g(ele) for ele in sequence ]
[ f(ele) for ele in sequence if condition1 and condition2]
6.6.2. Tuple Comprehension#
Tuple Comprehension returns a generator
Generators generate one-time use values
( f(ele) for ele in sequence )
( f(ele) for ele in sequence if condition )
( f(ele) if condition else g(ele) for ele in sequence )
6.6.3. List Comprehension Exercises#
6.6.4. Exercise 1#
Re-write the following code to use List Comprehension
my_list = [1, 2, 3]
new_list = []
for ele in my_list:
tmp = ele * ele
new_list.append(tmp)
Show code cell source
my_list = [1, 2, 3]
new_list = []
for ele in my_list:
tmp = ele * ele
new_list.append(tmp)
new_list = [ele*ele for ele in my_list]
6.6.5. Exercise 2#
Re-write the following code to use List Comprehension Multiply each number by 10
my_list = [1, 2, 3]
new_list = []
for ele in my_list:
tmp = ele * 10
new_list.append(tmp)
Show code cell source
my_list = [1, 2, 3]
new_list = []
for ele in my_list:
tmp = ele * 10
new_list.append(tmp)
new_list = [ele*10 for ele in my_list]
6.6.6. Exercise 3#
Upper case each letter in animal variable
animal = 'buffalo'
Show code cell source
animal = 'buffalo'
[char.upper() for char in animal]
['B', 'U', 'F', 'F', 'A', 'L', 'O']
6.6.7. Exercise 4#
Title each name in the student list
students = ['john', 'jane', 'doe']
Show code cell source
students = ['john', 'jane', 'doe']
[student[0].upper()+student[1:] for student in students]
students = ['john', 'jane', 'doe']
print([student.title() for student in students])
['John', 'Jane', 'Doe']
6.6.8. Exercise 5#
Use list comprehension to get the Truthiness of each element in my_list
my_list = [0, '', []]
Show code cell source
my_list = [0, '', []]
[bool(ele) for ele in my_list]
[False, False, False]
6.6.9. Exercise 6#
Convert each element of my_list to str using list comprehension
my_list = range(6)
Show code cell source
my_list = range(6)
[str(element) for element in my_list]
['0', '1', '2', '3', '4', '5']
6.6.10. Exercise 7#
Use list comprehension to reduce a list of numbers to just even or odd
numbers = range(20)
Show code cell source
numbers = range(20)
even = [number for number in numbers if number % 2 == 0 ]
odd = [number for number in numbers if number % 2 != 0 ]
6.6.11. Exercise 8#
Use list comprehension to modify a list of numbers such that evens are left as is and the odds are raised to the three power
numbers = range(10)
Show code cell source
numbers = range(10)
[number if number % 2 == 0 else number**3 for number in range(10)]
[0, 1, 2, 27, 4, 125, 6, 343, 8, 729]
6.6.12. Exercise 9#
Use list comprehension to remove vowels from a sentence
sentence = 'I rEAlly want to gO to work'
Show code cell source
sentence = 'I rEAlly want to gO to work'
''.join([char for char in sentence if char.lower() not in 'aeiou'])
' rlly wnt t g t wrk'