在一个列表中存储多个整数值并返回最佳值pai

2024-05-29 02:19:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下三个整数值:

id        # identifies the pair
entropy   # gives entropy information
len       # basicly the length of a string

现在我想存储这些值中的许多,并选择总熵最大且长度值超过n的前10个值

^{pr2}$

这很容易做到吗?在


Tags: oftheidstringleninformation整数length
2条回答

为了解决您的问题,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])

相关问题 更多 >

    热门问题