这两个函数可以帮助我们在某个集合中找出最大或最小的N个元素。例如:
>>> import heapq >>> nums=[1,8,2,23,7,-4,18,23,42,37,2] >>> print(heapq.nlargest(3,nums)) [42, 37, 23] >>> print(heapq.nsmallest(3,nums)) [-4, 1, 2]
heapq默认小根堆,操作如下
hp = [i for i in range(10)] heapq.heapify(hp) heapq.heappop(hp) heapq.heappush(hp,11])
zip 函数接受的是 一系列可迭代对象,数组、元祖、字典、字符串都可以,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表的长度 取决于最短的对象,而zip_longest返回列表长度取决于最长的对象相同,缺失值的部分可以用fillvalue 参数来填充
for v1, v2 in zip_longest(version1.split('.'), version2.split('.'), fillvalue=0):