Python判断值是否在list或set中的性能对比分析

yipeiwu_com6年前Python基础

本文实例对比分析了Python判断值是否在list或set中的执行性能。分享给大家供大家参考,具体如下:

判断值是否在set集合中的速度明显要比list快的多, 因为查找set用到了hash,时间在O(1)级别。

假设listA有100w个元素,setA=set(listA)即setA为listA转换之后的集合。
以下做个简单的对比:

for i in xrange(0, 5000000):
  if i in listA:
     pass
for i in xrange(0, 5000000):
  if i in setA:
     pass

第一个循环用了16min,第二个循环用了52s。 由此可见,在set中判断是否存在某值的效率要高的多。

况且,从list转为set,并不会花什么时间。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python常见字典内建函数用法示例

本文实例讲述了Python常见字典内建函数用法。分享给大家供大家参考,具体如下: 1、len(mapping)      &n...

Unicode和Python的中文处理

在Python语言中,Uincode字符串处理一直是一个容易让人迷惑的问题。许多Python爱好者经常因为搞不清Unicode、UTF-8还有其它许许多多的编码之间的区别而大伤脑筋。笔者...

Python封装shell命令实例分析

本文实例讲述了Python封装shell命令的方法。分享给大家供大家参考。具体实现方法如下: # -*- coding: utf-8 -*- import os import sub...

浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)

pandas为我们提供了多种切片方法,而要是不太了解这些方法,就会经常容易混淆。下面举例对这些切片方法进行说明。 数据介绍 先随机生成一组数据: In [5]: rnd_1 = [r...

Django中信号signals的简单使用方法

正文 在平时的开发过程中,我们会遇到一些特殊的应用场景,如果你想要在执行某种操作之前或者之后你能够得到通知,并对其进行一些你想要的操作时,你就可以用Django中的信号(signals)...