2014-02-28 36 views
0

count = 10, 100, 1000, 10000难度使用timeit模块

为计的每一个值,我需要使用timeit执行该方法5次,并打印出min值和实际的5个值。

numstring包含四个函数。

输出应该像(共16行):

numbers_string1,计数= 10,最小= 0.0001,实际值= [0.0001,0.0002,0.0001,...]

numbers_string1 ,计数= 100,最小值= 0.002,实际值= [0.002,0.002,0.003,...]

....

numbers_string4,计数= 10000,分= 0.1的实际值= [.... ]

为此,我试过这样:

我的代码:

from numstring import * 
import timeit 

def profile_timeit(): 
    funcs_list = [numbers_string1, numbers_string2, numbers_string3, num_strings4] 
    for i in funcs_list: 
     for count in [10, 100, 1000, 10000]: 
      actuals = timeit.timeit(stmt='i(count)', number=4, setup='from __main__ import *') 
      print "{0} count = {1} \t min = {2} \t actuals = {3}".format(i, count, min(actuals), actuals) 
     print "\n" 
if __name__ == "__main__": 
    profile_timeit() 

任何人可以请帮助我。在此先感谢

回答

1

你可以试试这个....

from numstring import * 
import timeit 
def profile_timeit(): 
    funcs = [numbers_string1,numbers_string2,numbers_string3,num_strings4] 
    count = [10,100,1000,10000] 
    for func in funcs: 
     for cnt in count: 
      for i in xrange(5): 
       t=timeit.Timer(stmt = "%s(%d)"%(func.__name__, cnt), setup = "from __main__ import %s"%(func.__name__,)) 
       tms = t.repeat(repeat=5, number=1) 
      print "%s, count = %d, min = %s , actuals = %s" % (func.__name__, cnt, min(tms), tms) 
    pass 

告诉我,如果它好不好?

+0

是的,你是绝对正确的..谢谢 – coderusher

+0

你好阿卜杜拉你能解释我如何做项目? – user3397770