• Python_heapq


     1 import heapq    #导入heapq堆模块
     2 import random
     3 data = random.sample(range(1000),10)
     4 print(data)
     5 heapq.heapify(data) #堆化随机测试数据
     6 print('堆化随机测试数据:',data)
     7 heapq.heappush(data,30) #新元素入堆,自动调整堆
     8 print('插入30后的堆数据:',data)
     9 heapq.heappush(data,5)
    10 print('插入5后的堆数据:',data)
    11 print('删除的数据为:',heapq.heappop(data),'返回并删除最小元素,自动调整堆后的堆数据:',data)
    12 print('弹出最小元素,同时新元素入堆后的数据:',heapq.heappushpop(data,1000))
    13 print('弹出最小元素,同时新元素入堆后的数据',heapq.heapreplace(data,500))
    14 print('弹出最小元素,同时新元素入堆后的数据',heapq.heapreplace(data,700))
    15 print('返回最大的前3个元素',heapq.nlargest(3,data) ) #返回最大的前3个元素
    16 print('返回指定排序规则下最小的3个元素',heapq.nsmallest(3,data,key=str)) #返回指定排序规则下最小的3个元素
    17 print(data)
    18 
    19 '''
    20 输出结果
    21 [80, 366, 834, 269, 829, 295, 583, 952, 548, 668]
    22 堆化随机测试数据: [80, 269, 295, 366, 668, 834, 583, 952, 548, 829]
    23 插入30后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
    24 插入5后的堆数据: [5, 80, 30, 366, 269, 295, 583, 952, 548, 829, 668, 834]
    25 删除的数据为: 5 返回并删除最小元素,自动调整堆后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
    26 弹出最小元素,同时新元素入堆后的数据: 30
    27 弹出最小元素,同时新元素入堆后的数据 80
    28 弹出最小元素,同时新元素入堆后的数据 269
    29 返回最大的前3个元素 [1000, 952, 834]
    30 返回指定排序规则下最小的3个元素 [1000, 295, 366]
    31 [295, 366, 583, 500, 668, 834, 700, 952, 548, 829, 1000]
    32 '''
  • 相关阅读:
    Maven的配置文件-settings.xml内容分解
    数据库管理工具-Navicat Premium 12
    转:android Support 兼容包详解
    转:聊聊mavenCenter和JCenter
    转:serialVersionUID作用
    Android 6.0 权限知识学习笔记
    X86和X86_64和X64有什么区别?
    Android 问题汇总(持续更新)
    Android-armebi-v7a、arm64-v8a、armebi的坑
    HttpUrlConnection 基础使用
  • 原文地址:https://www.cnblogs.com/cmnz/p/6937187.html
Copyright © 2020-2023  润新知