在 Python 中查找大于 0 的列表中的最小值
Python 中要在列表中查找大于 0 的最小值:
- 使用生成器表达式迭代列表。
- 检查每一项是否大于0并返回结果。
- 将结果传递给
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)
在这种情况下,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
。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。