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