zoukankan      html  css  js  c++  java
  • python性能对比

    python性能对比之items

    #1

    #-*- coding:utf8-*-
    
    import datetime
    
    road_nodes = {}
    for i in range(5000000):
        road_nodes[i] = {'id':i}
    
    
    beg_time = datetime.datetime.now()
    for key, val in road_nodes.items():
        pass
    end_time = datetime.datetime.now()
    
    print "time_scan:", end_time - beg_time

    耗时

    $python com_1.py
    time_scan: 0:00:17.126098

    #2

    #-*- coding:utf8-*-
    
    import datetime
    
    road_nodes = []
    for i in range(5000000):
        road_nodes.append(i)
    
    
    beg_time = datetime.datetime.now()
    for key in road_nodes:
        pass
    end_time = datetime.datetime.now()
    
    print "time_scan:", end_time - beg_time

    耗时

    $python com_2.py 
    time_scan: 0:00:00.325304
    

    #3

    #-*- coding:utf8-*-
    
    import datetime
    
    road_nodes = {}
    for i in range(5000000):
        road_nodes[i] = {'id':i}
    
    
    beg_time = datetime.datetime.now()
    for key in road_nodes:
        pass
    end_time = datetime.datetime.now()
    
    print "time_scan:", end_time - beg_time

    耗时

    $python  com_3.py 
    time_scan: 0:00:00.359197
    

    总结

    只对于字典key的遍历,用for key in dic方式  

    python性能对比之in list/dict

    #1

    from datetime import datetime
    a = []
    for i in range(50000):
        a.append(i)
    
    aim_list = []
    for i in range(1000000):
        aim_list.append(i)
    
    
    beg_time = datetime.now()
    for key in a:
        if key in aim_list:
            pass
    end_time = datetime.now()
    print "scan:", end_time - beg_time

    运行

    $python draw.py
    scan: 0:00:38.624985
    

    #2  

    from datetime import datetime
    a = []
    for i in range(50000):
        a.append(i)
    
    aim_list = {}
    for i in range(1000000):
        aim_list[i] = None
    
    
    beg_time = datetime.now()
    for key in a:
        if key in aim_list:
            pass
    end_time = datetime.now()
    print "scan:", end_time - beg_time

    运行

    $python  draw2.py 
    scan: 0:00:00.014031
    

    分析

    巨大的差异由 aim_list类型导致,一个是list,一个是dict

    for i in ***时,list是一个个遍历,效率是O(n);dict是直接找到,效率是O(1)。

      

  • 相关阅读:
    【k8s】pv 处在 Terminating 状态
    【k8s】命令行自动补全
    【k8s】允许 master 节点运行 pod
    【k8s】Harbor 安装
    Nginx 允许 frame 嵌套
    Python基础教程:json中load和loads区别
    Python 基础教程:用户交互语句
    Python正则表达式-常用函数的基本使用
    Python字典循环与字典排序
    4道Python文件操作和函数练习题
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/6373197.html
Copyright © 2011-2022 走看看