python实现获取序列中最小的几个元素

yipeiwu_com6年前Python基础

本文实例讲述了python实现获取序列中最小的几个元素。分享给大家供大家参考。

具体方法如下:

import heapq 
import random 
def issorted(data): 
 data = list(data) 
 heapq.heapify(data) 
 while data: 
  yield heapq.heappop(data) 
   
alist = [x for x in range(10)] 
random.shuffle(alist) 
print 'the origin list is',alist 
print 'the min in the list is' 
for x in issorted(alist): 
 print x,

程序运行结果如下:

the origin list is [2, 3, 4, 9, 8, 5, 1, 6, 0, 7]
the min in the list is
0 1 2 3 4 5 6 7 8 9

使用了heapq模块和random模块.heapq二叉树,常用来处理优先级序列问题。

此外还有一个更为简单的方法:

print heapq.nsmallest(3,alist) #打印出alist列表中最小的三个元素最小,如果是字母就是按字母序比较

感兴趣的朋友可以测试运行本文实例,相信本文所述对大家Python程序设计的学习有一定的借鉴价值。

相关文章

Python实现的旋转数组功能算法示例

本文实例讲述了Python实现的旋转数组功能算法。分享给大家供大家参考,具体如下: 一、题目 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 例1: 输入: [...

Python if语句知识点用法总结

计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: age = 20 if age...

flask session组件的使用示例

一、简介 flask中session组件可分为内置的session组件还有第三方flask-session组件,内置的session组件功能单一,而第三方的flask-sessoin可...

python批量添加zabbix Screens的两个脚本分享

前言 在最初搭建公司监控系统的时候,最头疼的是需要把同类项目组的相同图形添加到一个Screens,由于只能一个一个的添加,非常耗时耗经历。 下面分享两个脚本来解决这个头疼的问题。 1.将...

Python如何快速实现分布式任务

深入读了读python的官方文档,发觉Python自带的multiprocessing模块有很多预制的接口可以方便的实现多个主机之间的通讯,进而实现典型的生产者-消费者模式的分布式任务架...