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 https://blog.csdn.net/FontThrone/article/details/74230603

好吧我承认最近一直入门python! 关于python3 和 python2 List 的一点区别 以及python 通过enumerate 内建函数遍历List

我学到哪就更到哪里好不好? 萌萌哒来我们直接上代码Python 2.7.9 (default, Mar 1 2015, 12:57:24) [GCC 4.9.2] on linux2 Type ...
  • Z_LiT0
  • Z_LiT0
  • 2016-05-06 19:59:42
  • 851

Python2与Python3中的list异同

这次仅仅从自己实践经验上来做一次简单的小结,Python 2与Python 3中的list在使用中的异同点做一个简单的总结。        跟随技术的脚步,我自己的机器上安装的是Python3,前阵...
  • grey_csdn
  • grey_csdn
  • 2017-07-27 23:09:22
  • 186

python2, 3 中zip list 函数

1. python 3 中的例子 x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) print(xyz) 输出...
  • wuguangbin1230
  • wuguangbin1230
  • 2017-05-04 11:34:58
  • 358

java集合类的效率测试

  • 2009年06月01日 18:30
  • 16KB
  • 下载

【Python】学习笔记——-2.6、使使用dict和set

dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 举个例子,假设要根...
  • singit
  • singit
  • 2017-02-08 23:13:19
  • 429

python版本切换

  • 2018年02月06日 08:35
  • 1.07MB
  • 下载

ez_setup.py

  • 2015年05月13日 01:55
  • 12KB
  • 下载

深入Python2和3

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

Python2与Python3的区别(五):range

Python2与Python3的区别(五):range
  • foryouslgme
  • foryouslgme
  • 2016-06-23 17:45:58
  • 1624

比较Python 2 和 Python 3 在对list进行循环的执行效率

本文对Python 2 和 Python 3 对集合-list进行循环时的执行效率进行比较 首先我定义了一个for_test函数,然后利用ipython的魔法函数 %timeit进行执行速度的测试...
  • AlanGuoo
  • AlanGuoo
  • 2018-02-09 00:47:47
  • 158
收藏助手
不良信息举报
您举报文章:Python2/3 list set性能测试
举报原因:
原因补充:

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