Python代码优化之in关键字

如果经常需要测试一个序列中是否包含某个元素,最好使用字典或集合,尽量不使用列表。

import random

import time

x_list = list(range(10000))

x_set = set(range(10000))

x_dict = dict(zip(range(1000), range(10000)))

x = (x_list, x_set, x_dict)

#生成随机测试数字

r = random.randint(0, 9999)

#测试每种结构所用的时间

for xyz in x:

start = time.time()

for i in range(9999999):

r in xyz

print(str(type(xyz))+'time used:', time.time()-start)

运行结果如下,可以看出,对于测试是否包含某个元素的操作,列表的速度非常慢:

<class 'list'>time used: 2882.9568955898285

<class 'set'>time used: 2.398137092590332

<class 'dict'>time used: 1.9431111812591553

温馨提示:单击文章顶部作者名字旁边浅蓝色的“Python小屋”进入公众号,关注后可以查看更多内容!

欢迎转发给您的朋友,或许这正是Ta需要的知识!

原文发布于微信公众号 - Python小屋(Python_xiaowu)

原文发表时间:2016-08-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏决胜机器学习

有趣的算法(十) ——归并排序思想解决大量用户数据清洗

有趣的算法(十)——归并排序思想解决用户数据清洗 (原创内容,转载请注明来源,谢谢) 一、问题阐述 近期工作中接触到一个很有趣的算法,在此进行分享。 当前有...

3569
来自专栏丑胖侠

《Drools 7 规则引擎教程》番外篇-规则条件匹配机制

问题场景 QQ技术群(593177274)中有同学遇到这一个问题场景:在多条规则(比如3条)的when中使用了一个相同的静态方法,并在静态方法中打印相关的日志信...

2518
来自专栏张善友的专栏

我为何需要使用空接口?

FxCop设计规则中的第三条提供了对空接口的检查.下面是它的描述: 一个接口提供了一组行为和使用契约(usage contract),任何一个类型都可以实现这个...

1945
来自专栏技术记录

谈谈序列化—实体bean一定要实现Serializable接口?

导读:最近在做项目的过程中,发现一个问题,就是我们最开始的时候,传递参数包括返回类型,都有map类型。但是由于map每次都要匹配key值,很麻烦。所以在之后就将...

3938
来自专栏决胜机器学习

设计模式专题(十四)——适配器模式

设计模式专题(十四)——适配器模式 (原创内容,转载请注明来源,谢谢) 一、概述 适配器模式(Adapter)是将一个类的接口转换成客户希望的另外一个接口,该...

3677
来自专栏玄魂工作室

Python爬虫之urllib模块2

--------------------------------------------------------------------------------...

2905
来自专栏WeTest质量开放平台团队的专栏

Go语言之三驾马车

从 Python 到 Go,远离舒适区,保持饥饿。

1661
来自专栏小程序·云开发专栏

小程序·云开发的云函数路由高级玩法

在掘金开发者大会上,在推荐实践那里,我有提到一种云函数的用法,我们可以将相同的一些操作。

8.7K12
来自专栏从零开始学自动化测试

python笔记11-多线程之Condition(条件变量)

前言 当小伙伴a在往火锅里面添加鱼丸,这个就是生产者行为;另外一个小伙伴b在吃掉鱼丸就是消费者行为。当火锅里面鱼丸达到一定数量加满后b才能吃,这就是一种条件判断...

3715
来自专栏HansBug's Lab

一个很逗的东西——Jd

这个嘛是本人专门为了NOI上面对拍程序写的对拍程序,已经经历了NOI2015的考验;更重要的是——纯Pascal的哦(HansBug:其实是我不会写.sh脚本T...

30512

扫码关注云+社区

领取腾讯云代金券