Python Forum
a generator that computes squares of first 20 natural numbers
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
a generator that computes squares of first 20 natural numbers
#1
Problem Statement:

Define two functions f1 and f2 such that,
f1 returns a list of squares of first 20 natural numbers using list comprehension.
f2 returns a generator that computes squares of first 20 natural numbers.
Determine the time taken by each function to get executed 100000 times. Print the time for each function in separate lines.
Hint : Explore timeit module

Answer :

import timeit
def f1():
	f= [i**2 for i in range(1,21)]
	return f
def f2():
	g = (x**2 for x in range(1,21))
	yield g

s1 = timeit.timeit(stmt="f1()",setup="from __main__ import f1",number=100000)
print(s1)
s2 = timeit.timeit(stmt="next(f2())",setup="from __main__ import f2",number=100000)
print(s2)
Can anybody check the answer is correct or not ?
Reply
#2
I don't think you need to time calling next(f2()). I would expect to call it the same way as f1(). The idea is to see the difference in timing when creating list in memory and just creating the generator. Also note that they want f2 to return generator, not f2 to be generator

import timeit
def f1():
    f= [i**2 for i in range(1,21)]
    return f
def f2():
    g = (x**2 for x in range(1,21))
    return g
 
s1 = timeit.timeit(stmt="f1()",setup="from __main__ import f1",number=100000)
print(s1)
s2 = timeit.timeit(stmt="f2()",setup="from __main__ import f2",number=100000)
print(s2)
Output:
1.0165985100029502 0.1487332629985758
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Random Generator: From Word to Numbers, from Numbers to n possibles Words Yamiyozx 2 1,407 Jan-02-2023, 05:08 PM
Last Post: deanhystad
  Manually raising two error types with a function that computes sqfeet to sqmeters sean1 7 2,086 Nov-12-2021, 05:01 PM
Last Post: deanhystad
  Descending order unique squares OmegaRed94 6 2,420 Sep-26-2021, 04:33 PM
Last Post: ndc85430
  Natural language processing project maaaa2401 1 1,801 Dec-04-2020, 07:26 PM
Last Post: Larz60+
  Convert list of numbers to string of numbers kam_uk 5 2,990 Nov-21-2020, 03:10 PM
Last Post: deanhystad
  need help in natural language processing irsyadfm 7 4,500 Aug-07-2019, 07:42 AM
Last Post: tkorol
  Regular Expressions in Files (find all phone numbers and credit card numbers) Amirsalar 2 4,092 Dec-05-2017, 09:48 AM
Last Post: DeaD_EyE
  natural logarithm print atux_null 5 3,618 Oct-20-2017, 02:14 PM
Last Post: sparkz_alot
  Natural Logarithm in Python yg89 8 26,742 May-07-2017, 12:36 AM
Last Post: yg89

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020