python实现获取序列中最小的几个元素,python序列
python实现获取序列中最小的几个元素,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列表内建方法sort
比如:a = [1,3,2]
然后运行:
a.sort()
print a
a = [1,2,3]
或者用python内置方法sorted
sorted可以指定比较方法,详细解释看参考资料,官方文档
参考资料:wiki.python.org/moin/HowTo/Sorting
假定字典d为:
d = {'a': '7', 'e': '3', 'd': '8', 'g': '7', 'f': '1', 'j': '2', 'l': '9', 'w': '4'}
那么取值最小元素对应的键值对:
min(d.items(), key=lambda x: x[1])
得到
('f', '1')
取值最小元素对应的键,就是:
min(d.items(), key=lambda x: x[1])[0]
'f'
相关内容
- python中类的一些方法分析,python方法分析
- python使用marshal模块序列化实例,pythonmarshal
- python使用cPickle模块序列化实例,pythoncpickle
- python实现在pickling的时候压缩的方法,pythonpickling
- 跟老齐学Python之dict()的操作方法,齐学python
- 跟老齐学Python之有点简约的元组,齐学python
- 跟老齐学Python之数据类型总结,齐学python数据类型
- Python greenlet实现原理和使用示例,pythongreenlet
- 跟老齐学Python之深入变量和引用对象,齐学python
- 跟老齐学Python之赋值,简单也不简单,齐学python赋值
评论关闭