Python列表和字典相关操作的时间复杂度(附执行时间测试代码装饰器版及timeit模块)

列表(list)相关操作的时间复杂度:

image.png

——————————————————————————————————————

字典(dict)相关操作的时间复杂度:

image.png

自定义装饰器测试程序执行时间:

def stime(func):
    def funcition(*args,**kwargs):
        start = time.time()
        func(*args,**kwargs)
        end = time.time()
        t = end - start
        return t
    return funcition

使用timeit模块测试程序执行时间:

class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)

Timer是测量小段代码执行速度的类。

stmt参数是要测试的代码语句(statment);

setup参数是运行代码时需要的设置;

timer参数是一个定时器函数,与平台有关。

timeit.Timer.timeit(number=1000000)

Timer类中测试语句执行速度的对象方法。number参数是测试代码时的测试次数,默认为1000000次。方法返回执行代码的平均耗时,一个float类型的秒数。

import timeit

def test1():
   l = []   for i in range(1000):
      l = l + [i]

t1 = Timer("test1()", "from __main__ import test1")
print("concat ",t1.timeit(number=1000), "seconds")      # 'concat ', 1.7890608310699463, 'seconds'

发表评论

邮箱地址不会被公开。

Captcha Code