url去重算法降低时间复杂度(python小技巧)
来源:互联网 发布:深圳云之讯网络 编辑:程序博客网 时间:2024/06/05 05:47
抓取url的过程中,一般去重的实现python都是利用把url存入列表list(时间复杂度On)去实现,根据时间复杂度,list会随着url数量的增加时间复杂度逐渐增加,故我们可以
利用字典(时间复杂度O1)进行去重从而减少时间复杂度,不会因为url的大量增
加而时间复杂度进行增加。
利用list进行去重url的形式
下面我们用defaultdict去实现这个去重方法,下面代码的逻辑如果dict中不存在
url,那么就把url存储到字典中并赋值为1,如果存在不会执行代码。
利用字典(时间复杂度O1)进行去重从而减少时间复杂度,不会因为url的大量增
加而时间复杂度进行增加。
利用list进行去重url的形式
urls = []#我们用for循环抓取url,相当于采集了url链接for i in xrange(10000): url = "http://www.baidu.com/test.php?id=a&testid={i}".format(i=i) #一般利用list进行的去重 if url not in urls: urls.append(url)#随着url增加时间复杂度逐渐增加On
下面我们用defaultdict去实现这个去重方法,下面代码的逻辑如果dict中不存在
url,那么就把url存储到字典中并赋值为1,如果存在不会执行代码。
urls = defaultdict(lambda:'none_value')#我们用for循环抓取url,相当于采集了url链接for i in xrange(10000): url = "http://www.baidu.com/test.php?id=a&testid={i}".format(i=i) #用dict进行的去重 if urls[url] == "none_value": urls.update({url:"1"}) #这个方法的好处就是即使大量的url去重或者查找时间复杂度始终是O1
0 0
- url去重算法降低时间复杂度(python小技巧)
- 用哈希算法的思想解决排序和字符串去重问题,时间复杂度为O(N)
- [算法] 使用“复杂”的数据结构降低时间复杂度
- 素数(降低时间复杂度)
- 根据题意降低时间复杂度
- 等式转换降低时间复杂度
- 将数组中的元素去重,并保持数组元素原顺序输出 要求时间复杂度尽可能的小
- 设计时间复杂度小的算法
- 二分查找法降低时间复杂度
- 使用散列表来降低时间复杂度
- 使用二进制的思想降低时间复杂度
- URL去重
- url去重
- URL去重思路
- url去重
- URL去重思路
- 减小模运算时间复杂度的小技巧
- 重拾算法(一):算法效率分析(空间复杂度和时间复杂度)
- CSRF的详细介绍与token的分析
- js动态添加class
- Mirantis Fuel调研
- VS2015 建立C++File 并运行Hello World!
- 杭电OJ2047
- url去重算法降低时间复杂度(python小技巧)
- ios nw_host_stats_add_src recv too small, nw_socket_set_common_sockopts setsockopt SO_NOAPNFALLBK fa
- 数字电路 逻辑框+符号的逻辑含义
- Oracle myibatis中to_date使用方式
- MTKLog 的分析
- android奇葩小问题(1)-onActivityResult获取不到值
- 上传文件(ajax结合form表单)
- 微信小程序ajax实现请求服务器数据,模版遍历数据
- QT布局以及使用QSS