当前位置: 首页 > 面试题库 >

在字典python中找到前k个最大的键

段干宾白
2023-03-14
问题内容

可以说我有一本字典:

{key1:value1........... keyn:valuen}

所以可以说我想写一个函数

def return_top_k(dictionary, k):

    return list_of_keys_sorted

获得具有前k个值的键(保持顺序,即开头出现最高值的键)的最有效方法(以大O表示)是什么?


问题答案:

O(n log k)

import heapq

k_keys_sorted = heapq.nlargest(k, dictionary)

您可以使用key关键字参数来指定应该用作排序键的内容,例如:

k_keys_sorted_by_values = heapq.nlargest(k, dictionary, key=dictionary.get)


 类似资料:
  • 问题内容: 我有一本这样的字典: 我想获得该字典的5个最大值,并以此存储一个新的字典。要获得最大值,我做了: 也许这是一项容易的任务,但是我坚持了很长时间。请帮忙!!! 问题答案: 你近了 您可以使用 [docs] 对列表进行 排序 ,并采用前五个元素: __ 另请参阅:Python排序方法

  • 本文向大家介绍寻找一数组中前K个最大的数相关面试题,主要包含被问及寻找一数组中前K个最大的数时的应答技巧和注意事项,需要的朋友参考一下 考察点:数组    

  • 我很难理解下面的代码是如何在字典中找到最大值的键的。我知道第一个参数返回键列表。但我没有得到第二个参数..帮帮我

  • 问题内容: 我有一个:键是字符串,值是整数。 例: 我想作为一个答案,因为它是具有更高价值的关键。 我使用带有反向键值元组的中间列表进行了以下操作: 那是一种更好(或更优雅)的方法吗? 问题答案: 您可以使用: 而不是在内存使用中构建新列表。该函数的参数是一个计算键的函数,该键用于确定如何对项目进行排名。 请注意,如果要使用另一个键值对,则此方法将仅返回两个值中的一个,即使它们都具有最大值。 如果

  • 我有两本字典Dict1和DICT2。Dict1中每个键的值如下所示: 但是Dict2由键组成,这些键是DICT1中的值。DICT2中的值是由元组组成的列表,如下所示。 我得到的当前输出是 我想要的输出应该是字典式的:

  • 本文向大家介绍程序查找在Python中最大和为k的矩形的和,包括了程序查找在Python中最大和为k的矩形的和的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个二维矩阵和另一个值k,我们必须找到sum≤k的矩形的最大和。 所以,如果输入像 5 −2 7 10 并且k = 15,则输出将为12,因为我们可以采用矩形[5,7]来得到小于15的12之和。 为了解决这个问题,我们将遵循以下步骤- n