005_008 Python 获取序列中最小的几个元素

代码如下:

#encoding=utf-8

print '中国'

#获取序列中最小的几个元素

import heapq

def isorted(data):
    data=list(data)
    heapq.heapify(data)
    while data:
        yield heapq.heappop(data)


#如果知道n
def getSmallest(n,data):
    return heapq.nsmallest(n,data)

def getlargest(n,data):
    return heapq.nlargest(n,data)

data=[1,200,3,1,3,4]

#测试
print getSmallest(3,data)
print getlargest(3,data)

print '--遍历'
for i in isorted(data):
    print i
打印结果如下:

中国
[1, 1, 3]
[200, 4, 3]
--遍历
1
1
3
3
4
200

你可能感兴趣的:(005_008 Python 获取序列中最小的几个元素)