📜  Python|从 Records 中获取 Top N 个元素

📅  最后修改于: 2022-05-13 01:55:36.466000             🧑  作者: Mango

Python|从 Records 中获取 Top N 个元素

有时,在处理数据时,我们可能会遇到一个问题,即我们有记录,我们需要从中找到最高的 N 分数。这种应用程序在Web开发领域很流行。让我们讨论一些可以解决这个问题的方法。

方法 #1:使用sorted() + lambda
上述功能的组合可用于执行此特定任务。在此,我们只使用带有反向标志为 true 的 sorted函数,并使用列表切片打印前 N 个元素。

# Python3 code to demonstrate working of
# Get Top N elements from Records
# Using sorted() + lambda
  
# Initializing list 
test_list = [('Manjeet', 10), ('Akshat', 4), ('Akash', 2), ('Nikhil', 8)]
  
# Initializing N 
N = 2
  
# printing original list
print("The original list is : " + str(test_list))
  
# Get Top N elements from Records
# Using sorted() + lambda
res = sorted(test_list, key = lambda x: x[1], reverse = True)[:N]
  
# printing result
print("The top N records are : " + str(res))
输出 :
The original list is : [('Manjeet', 10), ('Akshat', 4), ('Akash', 2), ('Nikhil', 8)]
The top N records are : [('Manjeet', 10), ('Nikhil', 8)]

Method #2 : Using sorted() + itemgetter()
上述功能的组合也可用于执行此特定任务。在此,由 lambda函数执行的任务由itemgetter()执行,用于获取必须包含在计算中的元组中的索引。

# Python3 code to demonstrate working of
# Get Top N elements from Records
# Using sorted() + itemgetter()
from operator import itemgetter
  
# Initializing list 
test_list = [('Manjeet', 10), ('Akshat', 4), ('Akash', 2), ('Nikhil', 8)]
  
# Initializing N 
N = 2
  
# printing original list
print("The original list is : " + str(test_list))
  
# Get Top N elements from Records
# Using sorted() + itemgetter()
res = sorted(test_list, key = itemgetter(1), reverse = True)[:N]
  
# printing result
print("The top N records are : " + str(res))
输出 :
The original list is : [('Manjeet', 10), ('Akshat', 4), ('Akash', 2), ('Nikhil', 8)]
The top N records are : [('Manjeet', 10), ('Nikhil', 8)]