python的set数据结构居然和dict相似
前期在python程序开发中用了很多set,提供了丰富的‘&,|,-’等操作,使用非常方便,方便鬼方便,对于服务器性能还是非常重要的。于是
对SET的速度做了些测试,非常的快(我的测试方法是插入100W条数据,然后插入100W零1,set特性肯定会在这100w数据中查找,如果遍历查找是吃不消的,测试结果非常快)。
于是看了python 2.5中set部分的实现,貌似是使用hashtable做底层的数据结构。
于是写python代码做了测试,如下:
import random
l = []
m = {}
i = 0
while 1:
v = random.randint(1,10000)
l.append(v)
m = 1
i += 1
if i >= 100:
break
s = set(l)
print 's:', s, '\n'
print 'm:', m.keys(), '\n'
执行后打印结果:
s: set()
m:
居然完全一样,确认了之前的想法,set底层实现和dict底层实现相似,都用了hashtable。set,map都有相同的特性,集合中元素唯一。
页:
[1]