Way to create a new list from iterable by transforming the items.
[ output_expression for item in iterable [ conditions ] ]
We can use if condition to filter out some elements.
'in' keyword can be used to create a condition statement.
If condition can be used to alter the resulting list.
Ladder of if-else statement can be used to alter the resulting list.
Nesting of list comprehension is just like the nested for loops.
Dictionary comprehension works the same as lists. The difference is that we will work on (key, value) pairs.
Set can be created just like the list is comprehended.
If you have some cool tricks regarding this topic, feel free to comment below. Thanks.
Syntax:
[ output_expression for item in iterable [ conditions ] ]
numbers = [1, 2, 3, 4, 5, 6]
squares = [number**2 for number in numbers]
print(squares)
#Output: [1, 4, 9, 16, 25, 36]
Using if condition
We can use if condition to filter out some elements.
numbers = [1, 2, 3, 4, 5, 6]
squares = [number**2 for number in numbers if number > 2]
print(squares)
#Output: [9, 16, 25, 36]
Using multiple if condition (ANDing)
We can use multiple if conditions to filter out elements. All if conditions will be ANDednumbers = [1, 2, 3, 4, 5, 18, 30]
list_1 = [number for number in numbers
if number % 2 == 0
if number % 3 == 0]
print(list_1)
#Output: [18, 30]
Using ‘in’ statement (ORing)
'in' keyword can be used to create a condition statement.
numbers = [1, 2, 3, 4, 5, 18, 30]
list_2 = [number for number in numbers
if number % 3 in (1, 2)]
print(list_2)
#Output: [1, 2, 4, 5]
Using if condition in output expression
If condition can be used to alter the resulting list.
numbers = [1, 2, 3, 4, 5]
list_3 = ["Even" if number % 2 == 0
else "Odd" for number in numbers]
print(list_3)
#Output: ['Odd', 'Even', 'Odd', 'Even', 'Odd']
Using the if-else statement
Ladder of if-else statement can be used to alter the resulting list.
numbers = [25, 35, 50, 90]
list_4 = ["First" if number >= 60
else "Second" if 45 <= number < 60
else "Third" if 33 <= number < 45
else "Failed"
for number in numbers]
print(list_4)
# Output: ['Failed', 'Third', 'Second', 'First']
Nesting list comprehension
Nesting of list comprehension is just like the nested for loops.
list_6 = [[n for n in range(1, 4)] for number in range(3)]
print(list_6)
# Output: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
Dictionary comprehension
Dictionary comprehension works the same as lists. The difference is that we will work on (key, value) pairs.
dict_1 = {'a': 1, 'b': 3, 'c': 4}
dict_2 = {key: value**2 for key, value in dict_1.items()}
print(dict_2)
# Output: {'a': 2, 'b': 6, 'c': 8}
Set comprehension
Set can be created just like the list is comprehended.
numbers = [1, 2, 3, 4, 5]
set_1 = {number*2 for number in numbers}
print(set_1)
# Output: {2, 4, 6, 8, 10}
If you have some cool tricks regarding this topic, feel free to comment below. Thanks.
Comments
Post a Comment