+ 3

What are generators exactly and how does the memory reserved for them...?

21st Nov 2020, 6:20 AM
Yathindra S
Yathindra S - avatar
4 odpowiedzi
+ 3
Yathindra S. Yes, for example you want to create a list of numbers multiplied by itself from 0-9. You might do it using list comprehension. nums = [i * i for i in range(10)] You can do the same thing using generator. def num_generator(length): for i in range(length): yield i * i nums = num_generator(10) However, you cannot access the elements of generator by indexing. You can only iterate over it. To really understand generators. You must first understand the concept of iterables and iterators.
21st Nov 2020, 1:36 PM
Nadie Fiind
Nadie Fiind - avatar
+ 3
Generator functions behaves likes an iterator. When you create a list, all of its elements are stored in memory. Generator functions yields only one element at a time. That means only one element is stored in memory. And that makes it more efficient in memory management.
21st Nov 2020, 12:58 PM
Nadie Fiind
Nadie Fiind - avatar
+ 2
Hello Nadie, So, if we want to create a list of 100 numbers, don't we need to store 100 values in it.. if we use generators...?
21st Nov 2020, 1:22 PM
Yathindra S
Yathindra S - avatar
+ 2
Hello Nadie Fiind, Thank you so much for your answer. I found it so useful. May others find this answer perfect.
21st Nov 2020, 1:43 PM
Yathindra S
Yathindra S - avatar