专栏首页Python小屋Python代码优化之in关键字

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),作者:董付国

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python扩展库psutil用法精要

    0、安装与导入psutil pip install psutil import psutil 1、查看CPU信息 >>> psutil.cpu_count() ...

    Python小屋屋主
  • Python+socket+多线程实现同时应答多客户端的自助聊天机器人

    Python小屋屋主
  • Python从序列中选择k个不重复元素

    集合中的元素不允许重复,Python集合的内部实现为此做了大量相应的优化,判断集合中是否包含某元素时比列表速度快很多。下面的代码用于返回指定范围内一定数量的不重...

    Python小屋屋主
  • time模块

    在Python中,通常有这三种方式来表示时间,时间戳,元组(struct_time)、格式化的时间字符串:

    超蛋lhy
  • curl你花了多长时间?

    curl -w "@curl-format.txt" -o /dev/null -s "http://www.baidu.com/"

    随心助手
  • python 格式化日期

    (1)time.asctime(time.localtime(time.time()))

    py3study
  • python实现时间的比较

    下面介绍下Python中比较两个日期大小的脚本. 在实际工作中...

    py3study
  • 使用curl探测访问响应时长

    开心分享
  • Python time模块详解(时间戳↔元组形式↔格式化形式三者转化)

    在Python中, time有三种表示形式 1 时间戳:1970年1月1日之后的秒 2 元组格式化形式 包含了:年、日、星期 得到time.stru...

    学到老
  • 【Python 第61课】 计时

    Python中有一个time模块,它提供了一些与时间相关的方法。利用time,可以简单地计算出程序运行的时间。对于一些比较复杂、耗时较多的程序,可以通过这种方法...

    Crossin先生

扫码关注云+社区

领取腾讯云代金券