+ 1
List Comprehension
I just wanted to ask if someone could give an easy explanation of "list comprehension" in python language.
5 Answers
+ 7
Chris ,
i think it is helpful to take a simple task and build a code that demonstrates how a for loop works, and how we can use a list comprehension instead.
the task is to separate all even numbers in a new list. see the sample:
https://sololearn.com/compiler-playground/cWdOIzooputr/?ref=app
+ 3
It is an explanation of Lothar's code:
# using a list comprehension
nums = [99, 8, 13, 55, 12, 4, 0, 77, 99, 22, 2, 44, 76]
even_nums = [num for num in nums if num % 2 == 0]
The code extracts all even number from the given list "nums", and put them into a list.
[num for num in nums if num % 2 == 0]
Let's modify the above code into a stand for loop with a print function.
for num in nums:
if num % 2 == 0:
print(num)
As you guessed, it prints all the even numbers in the list.
While the syntax is invalid, if you move the print(num) to the start of the statement:
[print(num) for num in nums if num % 2 == 0]
It will be something like [8, 12, 14, 0, 22, 2, 44, 76].
Finally, the "even number list" is assigned to variable even_nums, thus
even_nums = [8, 12, 14, 0, 22, 2, 44, 76]
and it finish the list comprehension.
+ 2
It means you generate a list in one line instead of multiple ones. Like this.
chad_names = [user.name for user in users if user.is_chad]
It can be way faster, since the list is being created from a generator, instead of having to create an empty list and then add a new entry to it over and over.
+ 1
Basically it's a short hand for mapping a list