📜  Python - 从元组列表中查找最小 k 条记录

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

Python - 从元组列表中查找最小 k 条记录

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

方法 #1:使用sorted() + lambda
上述功能的组合可用于执行此特定任务。在这里,我们只使用 sorted函数,并使用列表切片打印最低的 K 个元素。

# Python3 code to demonstrate working of
# Minimum K records
# Using sorted() + lambda
  
# Initializing list 
test_list = [('Manjeet', 10), ('Akshat', 4), ('Akash', 2), ('Nikhil', 8)]
  
# Initializing K
K = 2
  
# printing original list
print("The original list is : " + str(test_list))
  
# Minimum K records
# Using sorted() + lambda
res = sorted(test_list, key = lambda x: x[1])[:K]
  
# printing result
print("The lowest K records are : " + str(res))
输出 :
The original list is : [('Manjeet', 10), ('Akshat', 4), ('Akash', 2), ('Nikhil', 8)]
The lowest K records are : [('Akash', 2), ('Akshat', 4)]

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

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