python list与dict

来源:互联网 发布:python爬虫入门书籍 编辑:程序博客网 时间:2024/05/18 08:18

在判断某个元素是否在列表和字典中的时候,这时候能够用字典进行存储,尽量不要用list。

字典的判断是O(1)的,list需要遍历,所以是O(n)。必要时候可以把list转换为set。不要直接用list进行。


import timecount = 1start_time = time.time()a = set(range(40001, 49999))for i in range(1000000):    if i in a:        count += 1end_time = time.time()print count, end_time - start_timecount = 1for i in range(1000000):    b = set(range(40001, 49999))    if i in b:        count += 1start_time = time.time()print count, start_time - end_time    
这段代码中 只是set(range(40001, 49999))位置的差别,但是性能却有着非常大的差距。


我认为,主要因为是每次都需要把list转换成set的耗时。


在list和dict的运用中,深有体会。我的程序中本来用list,100万的数据量跑了50多分钟,把list修改为dict之后,

时间变成了几秒。

因为list整个程序跑了4个半小时,修改只用大概10分钟。

原创粉丝点击