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)。

  

python性能对比的更多相关文章

  1. 2017年的golang、python、php、c++、c、java、Nodejs性能对比(golang python php c++ java Nodejs Performance)

    2017年的golang.python.php.c++.c.java.Nodejs性能对比 本人在PHP/C++/Go/Py时,突发奇想,想把最近主流的编程语言性能作个简单的比较, 至于怎么比,还是不 ...

  2. 2017年的golang、python、php、c++、c、java、Nodejs性能对比[续]

    2017年的golang.python.php.c++.c.java.Nodejs性能对比[续] 最近忙,这个话题放了几天,今天来个续集.   上篇传送门: 2017年的golang.python.p ...

  3. Python开发【笔记】:从海量文件的目录中获取文件名--方法性能对比

    Python获取文件名的方法性能对比 前言:平常在python中从文件夹中获取文件名的简单方法   os.system('ll /data/')   但是当文件夹中含有巨量文件时,这种方式完全是行不通 ...

  4. Python 读取图像文件的性能对比

    Python 读取图像文件的性能对比 使用 Python 读取一个保存在本地硬盘上的视频文件,视频文件的编码方式是使用的原始的 RGBA 格式写入的,即无压缩的原始视频文件.最开始直接使用 Pytho ...

  5. 开发语言性能对比,C++、Java、Python、LUA、TCC

    一直想做开发语言性能对比,刚好有时间都做了给大家参考一下, 编译类:C++和Java表现还不错 脚本类:TCC脚本动态运行C语言,性能比其他脚本快好多... 想玩TCC的同学下载测试包,TCC目录下修 ...

  6. python性能优化

      注意:本文除非特殊指明,”python“都是代表CPython,即C语言实现的标准python,且本文所讨论的是版本为2.7的CPython. python为什么性能差: 当我们提到一门编程语言的 ...

  7. python性能分析(一)——使用timeit给你的程序打个表吧

    前言 我们可以通过查看程序核心算法的代码,得知核心算法的渐进上界或者下界,从而大概估计出程序在运行时的效率,但是这并不够直观,也不一定十分靠谱(在整体程序中仍有一些不可忽略的运行细节在估计时被忽略了) ...

  8. 如何进行 Python性能分析,你才能如鱼得水?

    [编者按]本文作者为 Bryan Helmig,主要介绍 Python 应用性能分析的三种进阶方案.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 我们应该忽略一些微小的效率提升,几乎在 9 ...

  9. 【Java必修课】判断String是否包含子串的四种方法及性能对比

    1 简介 判断一个字符串是否包含某个特定子串是常见的场景,比如判断一篇文章是否包含敏感词汇.判断日志是否有ERROR信息等.本文将介绍四种方法并进行性能测试. 2 四种方法 2.1 JDK原生方法St ...

随机推荐

  1. Failed to get D-Bus connection: Operation not permitted

    通过centos7镜像创建了一个docker容器,并在容器中安装了一个apache服务,但是启动时发生如下报错 [root@1346963c2247 ~]# rpm -qa | grep httpdh ...

  2. 跨终端Web

    1.终端vs设备 H5页面运行在同一设备的不同终端下. (1)Web浏览器. (2)微信.QQ浏览器. (3)移动App的Webview. (4)TV机顶盒. 2.跨终端的实现方式 (1)响应式 存在 ...

  3. python的标准库

    第三方库放的位置:E:\python\Lib\site-packages 通过命令查询:import sys print (sys.path) 标准库:E:\\python\\lib 第三方库的上一级 ...

  4. JSON 数据转成Table

    public static DataTable JsonToDataTable(string strJson) { //转换json格式 strJson = strJson.Replace(" ...

  5. 【Selenium专题】元素定位之一简单定位

    UI自动化工具千变万化.架构千变万化,但都逃离不开的关键一步就是元素定位.下面以Selenium为例介绍常见的几个元素定位方法 ID -元素id属性 WebElement El = driver.fi ...

  6. 【新题】ocp 062 2019年考试新题-3

    3.A database is open read write and the instance has multiple sessions some of which have active tra ...

  7. Dockerfile数据管理

    本文介绍Docker内部以及容器间的数据管理,在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录(Bind mounts) 数据卷 数据卷是一个可供一个或则多个目录使用的特殊目录 ...

  8. margin 和 padding

    一图胜千言!!  参考 CSS padding margin border属性详解

  9. git命令上传项目到码云总结

    码云上传项目git命令总结: git clone https://git.oschina.net/xh-lxx/xh-lxx.oschina.io.git 进入到克隆下来的文件夹,然后操作git命令 ...

  10. 2019CVPR《Mask Scoring R-CNN》

    题目:<Mask Scoring R-CNN> CVPR 2019 Oral Paper(2017年783篇论文,获得口头报道的有215篇,oral paper很有含金量) 华中科技大学h ...