Python代码优化之in关键字

2016-08-12 董付国 Python小屋 Python小屋

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

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需要的知识!