📜  Python - 大于 K 的第 N 个最小的

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

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