Python 计算不重复元素的个数

来源:互联网 发布:洞洞板画线软件 编辑:程序博客网 时间:2024/05/22 15:54

情景:计算日志文件中,独立IP的个数,也就是unique visitor。

计算量:每小时大概有70万左右的记录,每天24小时,大概1400-1500万条记录


addrs = set()

for line in f.readlines():

    addr = get_addr(line)

    addrs.add(addr)

print len(addrs)

 

set的add方法会在内部判断元素是否已经添加,如果元素已经存在,则忽略掉,否则就添加到set里边去

所以,不需要像list那样在添加到set之前判断。

测试了一下,分析完一个文件才要2-3秒钟,速度是用list的200多倍啊,24个文件用了1分钟就分析完了。

 

set的缺点在于无法保证元素添加进去的顺序,如果需要保证顺序,还需要list的辅助啦。


0 0
原创粉丝点击