Python_heapq
import heapq #导入heapq堆模块
import random
data = random.sample(range(1000),10)
print(data)
heapq.heapify(data) #堆化随机测试数据
print('堆化随机测试数据:',data)
heapq.heappush(data,30) #新元素入堆,自动调整堆
print('插入30后的堆数据:',data)
heapq.heappush(data,5)
print('插入5后的堆数据:',data)
print('删除的数据为:',heapq.heappop(data),'返回并删除最小元素,自动调整堆后的堆数据:',data)
print('弹出最小元素,同时新元素入堆后的数据:',heapq.heappushpop(data,1000))
print('弹出最小元素,同时新元素入堆后的数据',heapq.heapreplace(data,500))
print('弹出最小元素,同时新元素入堆后的数据',heapq.heapreplace(data,700))
print('返回最大的前3个元素',heapq.nlargest(3,data) ) #返回最大的前3个元素
print('返回指定排序规则下最小的3个元素',heapq.nsmallest(3,data,key=str)) #返回指定排序规则下最小的3个元素
print(data) '''
输出结果
[80, 366, 834, 269, 829, 295, 583, 952, 548, 668]
堆化随机测试数据: [80, 269, 295, 366, 668, 834, 583, 952, 548, 829]
插入30后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
插入5后的堆数据: [5, 80, 30, 366, 269, 295, 583, 952, 548, 829, 668, 834]
删除的数据为: 5 返回并删除最小元素,自动调整堆后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
弹出最小元素,同时新元素入堆后的数据: 30
弹出最小元素,同时新元素入堆后的数据 80
弹出最小元素,同时新元素入堆后的数据 269
返回最大的前3个元素 [1000, 952, 834]
返回指定排序规则下最小的3个元素 [1000, 295, 366]
[295, 366, 583, 500, 668, 834, 700, 952, 548, 829, 1000]
'''
Python_heapq的更多相关文章
随机推荐
- libevent之event
就如libevent官网上所写的“libevent - an event notification library”,libevent就是一个基于事件通知机制的库,可以看出event是整个库的核心.e ...
- 禁用JavaScript控制台调试
原文链接: Disable the User's JavaScript Console 原文日期: 2014年03月06日 翻译日期: 2014年03月07日 翻译人员: 铁锚 有几个巨头公司,即Fa ...
- C语言之数值计算--级数算法
在编程语言的学习中,我们学习过不少的算法,比如累加,累乘,数值交换,排序等等.在一些软件比赛和面试题中,有一类算法不容忽视,属于高频题目,我之前去企业面试的时候就遇到这样的一类题目,题目不算难,掌握方 ...
- mt6577驱动开发 笔记版
3 Preloader & Uboot 3.1 Preloader 3.1.1Preloader结构 Preloader的主题结构在文件:"alps\mediatek\platfor ...
- Android Hal层简要分析
Android Hal层简要分析 Android Hal层(即 Hardware Abstraction Layer)是Google开发的Android系统里上层应用对底层硬件操作屏蔽的一个软件层次, ...
- Libevent库学习笔记
Libevent是一个事件触发的网络库,适用于windows.linux.bsd等多种平台,Libevent在底层select.pool.kqueue和epoll等机制基础上,封装出一致的事件接口.可 ...
- 导入android SlidingMenu 应用
SlidingMenu is a helpful Android library for developers. It creates a side navigation like the Faceb ...
- 【省带宽、压成本专题】深入解析 H.265 编码模式,带你了解 Apple 全面推进 H.265 的原因
过去几年,又拍云一直在点播.直播等视频应用方面潜心钻研,取得了不俗的成果.我们结合点播.直播.短视频等业务中的用户场景,推出了"省带宽.压成本"系列文章,从编码技术.网络架构等角度 ...
- mysql性能优化之-innodb_flush_log_at_trx_commit
innodb_flush_log_at_trx_commit是配置MySql日志何时写入硬盘的参数: 一.参数值说明 0:log buffer将每秒一次地写入log file中,并且log file的 ...
- Dubbo入门—搭建一个最简单的Demo框架
一.Dubbo背景和简介 1.电商系统的演进 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起. a.单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一 ...