![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码解读计划
文章平均质量分 67
解读各个库的源码以及具体实现
萌小奇0639
这个作者很懒,什么都没留下…
展开
-
heapq源码解读(四)
Python heapq源码解读计划(四)本文是解读python heapq 库的最后一节,主要分析的函数为nlargest和nsmallest这两个函数。nlargest函数的实现nlargest(n,iterable,key=None)这个函数的功能为返回数据集中最大的n个元素,等价于sorted(iterable, key=key, reverse=True)[:n]。n = 1时的处理当n = 1时,其实就是找出这个list中的最大值。这和使用max()函数是一样的,但是max()函数不接原创 2021-12-11 21:27:30 · 613 阅读 · 1 评论 -
heapq源码解读(三)
Python heapq源码解读计划(三)本文是解读heapq的第三节,主要来讲解一下heappop、heappush、heappushpop、heapreplace这四个个函数的具体实现。heappop函数的实现heappop这个函数的具体作用为将heap内的最小值pop掉,并且返回这个最小值,与此同时这个heap还是保持在最小堆的状态。首先,heapq的堆使用list来实现的,所以list可以执行的操作在这里也是可以使用的。lastelt = heap.pop()所以heappop的源码会原创 2021-12-10 22:10:43 · 1096 阅读 · 0 评论 -
heapq源码解读(二)
Python heapq源码解读计划(一)本文为解读heapq部分的第二节,主要是探索heapq中的heapify()函数具体是如何实现的。前言首先来回顾一下,heapq中的heap是如何构造的。python heapq的heap使用数组实现,从0开始计数。对于所有的k,都有 heap[k] <= heap[2 * k+1] 和 heap[k] <= heap[2 * k + 2]。源码解读heapify(x)源码:def heapify(x): """Transform原创 2021-12-09 23:23:26 · 733 阅读 · 0 评论 -
heapq源码解读(一)
本文是解读heapq源码的初始章节,主要目的是介绍heapq这个库的基本使用方法。原创 2021-12-09 15:43:06 · 1138 阅读 · 0 评论