zoukankan      html  css  js  c++  java
  • python的list费时对比

    1. 生成列表的费时对比

    #_*_coding:utf-8_*_
    from timeit import Timer
    
    def test1():
        li =[]
        for i in range(10000):
            li.append(i)
    
    def test2():
        li = []
        for i in range(10000):
            li += [i]
    def test3():
        li = [i for i in range(10000)]
    
    def test4():
        li = list(range(10000))
    
    def test5():
        li = []
        for i in range(10000):
            li.extend([i])
    
    timer1 = Timer("test1()","from __main__ import test1")
    print("timer1_append(i):",timer1.timeit(number=1000),'seconds')
    
    timer2 = Timer("test2()","from __main__ import test2")
    print("timer2_[i for i in range(10000)]:",timer2.timeit(number=1000),'seconds')
    
    timer3 = Timer("test3()","from __main__ import test3")
    print("timer3_+=[i]:",timer3.timeit(number=1000),'seconds')
    
    timer4 = Timer("test4()","from __main__ import test4")
    print("timer4_list(range(10000)):",timer4.timeit(number=1000),'seconds')
    
    timer5 = Timer("test5()","from __main__ import test5")
    print("timer5_extend([i]):",timer5.timeit(number=1000),'seconds')
    
    输出:
    timer1_append(i): 0.753196745132229 seconds
    timer2_[i for i in range(10000)]: 0.6985947891373111 seconds
    timer3_+=[i]: 0.3255351125585728 seconds
    timer4_list(range(10000)): 0.188680616099971 seconds
    timer5_extend([i]): 1.0021387690009393 seconds
    
    

    2. 往列表中添加元素的费时对比

    #_*_coding:utf-8_*_
    from timeit import Timer
    
    def test1():
        li =[]
        for i in range(10000):
            li.append(i)
    
    def test7():
        li = []
        for i in range(10000):
            li.insert(0,i)
    
    
    timer1 = Timer("test1()","from __main__ import test1")
    print("timer1_append(i):",timer1.timeit(number=1000),'seconds')
    
    timer7 = Timer("test7()","from __main__ import test7")
    print("timer7_insert(0,i)):",timer7.timeit(number=1000),'seconds')
    
    输出:
    timer1_append(i): 0.7587850447087984 seconds
    timer7_insert(0,i)): 19.461151800961186 seconds
    

    写入自己的博客中才能记得长久
  • 相关阅读:
    Win10 VS2013 PCL1.8.1和依赖项VTK8.0.1, QHuall(2.15.2), FLANN1.9.1,Boost1.59.0,Zbil1.2.11和libPNG1.6.34编译安装
    Boost log中的几个问题
    Linux 使用静态库注意事项
    Windows中lib和DLL区别和使用
    CMake: ELF文件加载动态库的位置
    CMake 默认编译、链接选项
    ld 链接选项-L,-rpath-link,-rpath
    动态库的链接和链接选项-L,-rpath-link,-rpath
    Linux共享对象之编译参数 -fPIC
    ny509 因子和阶乘
  • 原文地址:https://www.cnblogs.com/heris/p/14305601.html
Copyright © 2011-2022 走看看