Python - 大于 K 的第 N 个最小的
本文提供了各种方法来解决在Python列表中找到大于Python列表中特定元素 K 的第 N 个最小数字的问题。这基本上提供了从幼稚到单行的所有方法,以便在需要时可以在编程中使用它们。
方法1:朴素方法+ sort()
使用循环,我们继续添加大于 K 的元素,然后对列表进行排序并找到大于 K 的第 N 个元素。
# Python 3 code to demonstrate
# Nth smallest Greater than K
# using naive method + sort()
# Initializing list
test_list = [1, 4, 7, 5, 10]
# Initializing k
k = 6
# Initializing N
N = 2
# Printing original list
print ("The original list is : " + str(test_list))
# Using naive method + sort()
# Nth smallest Greater than K
res = []
for i in test_list :
if i > k :
res.append(i)
res.sort()
# Printing result
print ("The Nth minimum value greater than 6 is : " + str(res[N - 1]))
输出 :
The original list is : [1, 4, 7, 5, 10]
The Kth minimum value greater than 6 is : 10
方法2: lambda + filter() + sort()
与上述方法类似的方法,只是为了过滤列表中大于 k 的数字,在这种方法中使用 filter() 而不是循环。之后以与上述类似的方式工作。
# Python 3 code to demonstrate
# Nth smallest Greater than K
# using min() + sort() + lambda
# Initializing list
test_list = [1, 4, 7, 5, 10]
# Initializing k
k = 6
# Initializing N
N = 2
# Printing original list
print ("The original list is : " + str(test_list))
# Nth smallest Greater than K
# using min() + sort() + lambda
res = list(filter(lambda i: i > k, test_list))
res.sort()
# Printing result
print ("The Nth minimum value greater than 6 is : " + str(res[N - 1]))
输出 :
The original list is : [1, 4, 7, 5, 10]
The Kth minimum value greater than 6 is : 10