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)]