迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中查找大于 0 的列表中的最小值

作者:迹忆客 最近更新:2023/01/05 浏览次数:

Python 中要在列表中查找大于 0 的最小值:

  1. 使用生成器表达式迭代列表。
  2. 检查每一项是否大于0并返回结果。
  3. 将结果传递给 min() 函数。
my_list = [-5, 14, 4, -10, 7]

# ✅ find min value in list greater than 0
min_gt_0 = min(number for number in my_list if number > 0)
print(min_gt_0)  # 👉️ 4

# ✅ get the index of min value greater than 0
print(my_list.index(min_gt_0))  # 👉️ 2

我们使用生成器表达式来迭代数字列表。

生成器 表达式用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们检查当前项目是否大于 0 并返回结果。

最后一步是将仅包含大于 0 的数字的生成器对象传递给 min() 函数。

min 函数返回可迭代对象中的最小项或两个或多个参数中最小的一个。

print(min(14, 4, 7))  # 👉️ 4

如果需要获取列表中大于0的最小值的索引,使用 list.index() 方法。

my_list = [-5, 14, 4, -10, 7]

min_gt_0 = min(number for number in my_list if number > 0)
print(min_gt_0)  # 👉️ 4

print(my_list.index(min_gt_0))  # 👉️ 2

list.index() 方法返回其值等于提供的参数的第一个项目的索引。

请注意 ,如果列表中没有任何项大于 0,则 min() 函数会引发错误。

my_list = [-5, -1]

# ⛔️ ValueError: min() arg is an empty sequence
min_gt_0 = min(number for number in my_list if number > 0)

python ValueError- min() arg is an empty sequence

在这种情况下,min() 函数会使用一个空的生成器对象进行调用,因此会引发 ValueError。

我们可以通过在调用 min() 时提供默认值来处理错误。

my_list = [-5, -1]

min_gt_0 = min(
    (number for number in my_list if number > 0),
    default=None
)

print(min_gt_0)  # 👉️ None

min() 函数采用可选的默认关键字参数,用于指定在提供的可迭代对象为空时返回的值。

result = min([], default=0)

print(result)  # 👉️ 0

如果可迭代对象为空且未提供默认关键字参数,则该函数会引发 ValueError

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中的 Pandas 插入方法

发布时间:2024/04/23 浏览次数:112 分类:Python

本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。

Pandas 重命名多个列

发布时间:2024/04/22 浏览次数:199 分类:Python

本教程演示了如何使用 Pandas 重命名数据框中的多个列。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便