Python2/3 list set性能测试

原创 2017年07月03日 17:32:52

前言

程序员最悲伤的故事莫过于写了一段代码,编译没错,运行出错
写机器学习最悲伤的故事莫过于饰演了一个算法,运行的时候却卡的跑不起来

这些故事我都经历过,直到刚刚我遇到了一个更悲伤的的套路:

写了段程序,为了性能,查了网上的博客,写完了自己测试却发现前辈们博客上的结果是错的.是错的,是错的
请允许我做个悲伤的表情

而事情的真实面貌是这样的.刚刚我查了python中list与set性能的测试,几个博客写的都是set性能几十倍甚至几百倍于list?,于是我用set写完了我的程序,写完后有点无聊决定自己测试一下set和list的性能到底差多少.然后….然后就没有然后了.

愚蠢的人类啊

测试结果

# Python2.7.13

The time of list to set :  0.000111617786487
The time of list to set2 -set3 :  7.74054381383e-05
The time of list to set2 & set3 :  3.67782744746e-05
The time of list to set2 | set3 :  0.000196293348649
The time of list to set2 != set3 :  1.71061741742e-06
The time of list to set2 == set3 :  4.27654354355e-07
The time of list to set2 in set3 :  9.23733405407e-05
The time of list to set1007 = set2 not in set3 :  6.92800054056e-05

The time of set to list :  2.73698786787e-05
The time of list to list2 & list3 :  8.55308708711e-07
The time of list to list2 | list3 :  4.27654354355e-07
The time of list to list2 != list3 :  4.27654354355e-06
The time of list to list2 == list3 :  4.27654354355e-07
The time of list to list2 in list3 :  8.4247907808e-05
The time of list to list1007 = list2 not in list3 :  6.11545726728e-05
# Python3.6.1
The time of list to set :  9.451161231251095e-05
The time of list to set2 -set3 :  7.312889459474832e-05
The time of list to set2 & set3 :  5.260148558569621e-05
The time of list to set2 | set3 :  0.00010220939069090543
The time of list to set2 != set3 :  8.553087087106309e-07
The time of list to set2 == set3 :  4.276543543550986e-07
The time of list to set2 in set3 :  5.473975735747257e-05
The time of list to set1007 = set2 not in set3 :  2.352098948953888e-05

The time of set to list :  1.0263704504526053e-05
The time of list to list2 & list3 :  4.276543543550986e-07
The time of list to list2 | list3 :  1.2829630630657295e-06
The time of list to list2 != list3 :  8.553087087106309e-07
The time of list to list2 == list3 :  0.0
The time of list to list2 in list3 :  2.4376298198249295e-05
The time of list to list1007 = list2 not in list3 :  2.3520989489539098e-05

多次测试结果与上文显示结果类似,从最后测试效果看:
与前辈们的测试恰恰相反.
无论是类型转变还是集合操作现在版本的list(list转set)都具有比较明显的优势,甚至一些集合操作的性能list平均要比set快上个几十几百倍=- =

还有这种操作?

不说了,我还是去把我刚写的程序中的set类型都换回list吧.

没错这是最新的操作

测试代码下载

百度云链接http://pan.baidu.com/s/1nvKA4Al

版权声明:转载请标明出处:http://blog.csdn.net/fontthrone,也请保留该信息

Python标准库:内置函数format(value[, format_spec])

本函数把值value按format_spec的格式来格式化,然而函数解释format_spec是根据value的类型来决定的,不同的类型有不同的格式化解释。当参数format_spec为空时,本函数等...

安装完pip后出现unable to create process using "python.exe"的报错

报错如下图 解决方法: 使用python -m pip就可以了

Struts2与Spring3 MVC性能比较 (MVC性能测试)

你想建设一个能承受500万PV/每天的网站吗?  500万PV是什么概念?我的服务器每秒要处理多少个请求?  PV是什么?  PV是page view的简写。PV是指页面刷新的次数,每一次页...

python2 编码问题的测试代码

  • 2016年07月31日 11:17
  • 3KB
  • 下载

Python2.x与3_.x版本区别

  • 2017年08月25日 09:45
  • 341KB
  • 下载

DataTable转List集合,Json.net与反射性能测试

简单测试,不作权威数据 测试结果 json.net 性能更好 using Newtonsoft.Json; using System; using System.Collections.Generic...

Python2Vs3

  • 2012年06月29日 23:15
  • 74KB
  • 下载

深入Python2和3

  • 2016年07月09日 10:00
  • 6.86MB
  • 下载

Windows下灵活使用python2&3! VirtualEnv大法好!

python2 & 3的矛盾虽然python3推出已经好几年了,但是有时候参考一下古老的代码的时候,所需要的一些包经常是在python2下才可以使用的,而且有些更新比较慢的包在python3.x的最新...

python2-3.pdf

  • 2011年11月02日 09:53
  • 668KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python2/3 list set性能测试
举报原因:
原因补充:

(最多只允许输入30个字)