set与哈希
在python中,set是一种用来实现集合的容器,与dict一样,set也是通过哈希算法存储数据的,因此相比于通过链表存储数据的容器(如list),set对数据的查找要快得多,下面就用代码来验证一下。
import time
MAX = 200000000
def time_span(container):
t0 = time.time()
a = MAX-1 in container
b = -1 in container
print(a, b)
print('%s cost %.8f s' % (str(type(container)), time.time()-t0))
time_span(list(range(MAX)))
time_span(set(range(MAX)))
运行结果为
True False
<class 'list'> cost 5.75200653 s
True False
<class 'set'> cost 0.01350522 s