timeit.timeit("A0([randint(1,256) * (-1) ** randint(1,2) for j in range("+str(n)+")])", setup="from HW2 import A0", number=1000000)
我想测量A0算法在大小为n的列表上完成其作业所花费的时间,但我找不到生成列表的方法,然后将其作为变量传递给timeit.timeit (...) 方法。定时器是否仅测量A0完成所需的时间,或者列表生成是否也包含在测量中?
答案 0 :(得分:3)
它将测量语句中所有内容的执行时间(第一个arg),因此如果您只想测量对A0的调用,那么列表创建将会使结果产生偏差。
尝试在设置中创建列表:
timeit.timeit("A0(aList)", setup="from HW2 import A0; aList = [randint(1,256) * (-1) ** randint(1,2) for j in range("+str(n)+")] ", number=1000000)
列表将仅在计时器开始时创建一次,并且不包括在计时中。
答案 1 :(得分:0)
将包括列表生成时间(调用timeit时引号之间的任何内容)。