在 Python 中查找大于 K 的最小元素

pythonserver side programmingprogramming更新于 2025/10/12 15:08:17

在使用 Python 进行数据分析时,我们遇到许多需要从列表中筛选出符合特定条件的元素的情况。在本文中,我们将了解如何从列表中获取大于元素但在所有大于给定元素的元素中最小的元素。

使用 min

我们设计一个 for 循环来遍历列表中的每个元素,同时满足其值大于 k 的一般条件。然后,对于所有这些元素,我们应用 min 函数来获取最小值。

示例

listA = [1,5,6, 7,11,14]

# 原始列表
print(" 给定列表: ",listA)

k = 8

# 使用 min
res = min(i for i in listA if i > k)

# 结果
print("Missing elements from the list : \n" ,res)

输出

运行上述代码得到以下结果 −

Minimum element gerater than k :
11

使用 filter(过滤器)

这里我们使用 lambda 函数获取值大于 K 的元素。然后应用过滤器函数仅获取这些值。最后应用 min 函数从此列表中获取最小值。

示例

listA = [1,5,6, 7,11,14]

# 打印原始列表
print(" 给定列表: ",listA)

k = 8

# 使用 min
res = min(filter(lambda i: i > k, listA))

# 结果
print("Minimum element gerater than k : \n" ,res)

输出

运行上述代码得到以下结果 −

Minimum element gerater than k :
11

使用 bisect_right

bisect_right 函数在 bisect 模块中可用。它在大于或等于提供给它的某个参数值的点处对列表进行二分。在此示例中,我们获取列表,对其进行排序,然后应用 bisect_right 函数。我们获得大于所需值的元素的索引。

示例

from bisect import bisect_right
listA = [1,5,6, 7,11,14]

# 打印原始列表
print(" 给定列表: ",listA)

k = 8

listA.sort()
# 使用 bisect_right
res = listA[bisect_right(listA, k)]

# 结果
print("Minimum element gerater than k : \n" ,res)

输出

运行上述代码得到以下结果 −

Minimum element gerater than k :
11

相关文章


有用资源