- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
解决这个问题的最有效、最优雅和 Pythonic 的方法是什么?
给定一个包含 n 个元素的列表(或集合或其他),我们想要获得最大的 k 个元素。 (你可以假设 k<n/2
不失一般性,我猜)例如,如果列表是:
l = [9,1,6,4,2,8,3,7,5]
n = 9,假设 k = 3。检索 3 个最大的最有效的算法是什么?在这种情况下,我们应该得到 [9,8,7]
,没有特别的顺序。
谢谢!曼努埃尔
最佳答案
使用 heapq 模块中的 nlargest
from heapq import nlargest
lst = [9,1,6,4,2,8,3,7,5]
nlargest(3, lst) # Gives [9,8,7]
如果你想改变你的标准,你也可以给 nlargest 一个键:
from heapq import nlargest
tags = [ ("python", 30), ("ruby", 25), ("c++", 50), ("lisp", 20) ]
nlargest(2, tags, key=lambda e:e[1]) # Gives [ ("c++", 50), ("python", 30) ]
关于algorithm - 如何有效地获取列表中较大的 k 个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2243542/
我正在通过 PHP 将 .csv 中的两行插入到表中。 我还会跟踪任何错误,如果发生错误,我不会提交事务。插入表后,我检索结果行的 ID(全部在一个事务中提交),并且 csv 的第一行对应于第二个 I
一个应用程序托管一个具有三个接口(interface)的 Web 服务,用于三个单独且独立的操作,所有这些操作都在应用程序的不同组件中实现,彼此独立,例如在不同的包等中,所以他们对彼此了解不多,只共享
我希望在单击特定表格数据单元格时同时选中单选按钮和单选按钮单击事件。我已经使用以下方法实现了这一点: $(document).ready(function() { $("td").click(
JSFiddle:https://jsfiddle.net/oyp1zxaq/ 本质上,我只是想在较大的 div 中放置四个具有定义宽度的较小 div,但我希望它们在其中间隔开。 我想知道是否有一种方
我在一个布局中有两个 View 。我将分别称它们为 View A 和 View B。 ┌──────┐ │┌─┐┌─┐│ ││A││B││ │└─┘└─┘│ └──────┘ 父布局(包括View A
我是一名优秀的程序员,十分优秀!