2024-05-29 02:19:55 发布
网友
我有以下三个整数值:
id # identifies the pair entropy # gives entropy information len # basicly the length of a string
现在我想存储这些值中的许多,并选择总熵最大且长度值超过n的前10个值
n
这很容易做到吗?在
为了解决您的问题,sorted支持key参数:
sorted
key
filtered = ((k,v) for k,v in d.iteritems() if v[1] > n) # or filter(d.iteritems(), lambda t: t[1][1] > n) topTen = sorted(filtered, key=lambda t: t[0], reversed=true)[:10]
这是,imho,比使用heapq的解决方案更具可读性(并且具有同等的效率)。在
像这样构造字典后,可以得到前10个值。不过,如果有可能的话,如果你在构建字典时找到它们,会有一个更有效的解决方案。在
import heapq heapq.nlargest(10, (k for k in d if d[k][1] > n), key=lambda k: d[k][0])
为了解决您的问题,
sorted
支持key
参数:这是,imho,比使用heapq的解决方案更具可读性(并且具有同等的效率)。在
像这样构造字典后,可以得到前10个值。不过,如果有可能的话,如果你在构建字典时找到它们,会有一个更有效的解决方案。在
相关问题 更多 >
编程相关推荐