繁体   English   中英

根据条件获取最小值

[英]Get min value based on condition

我有以下列表

L= [383, 590, 912, 618, 203, 982, 364, 131, 343, 202]

如果我使用函数min(L)我得到131

是否可以知道超过 200 的数字列表中的最小值? 我猜像min(L, Key>200)

期望的结果是 202

您可以将min()函数与使用for循环的列表遍历结合使用,以在查找最小值时引入条件:

L= [383, 590, 912, 618, 203, 982, 364, 131, 343, 202]
m = min(i for i in L if i > 200)
print(m)

输出:

202

如果对使用任何其他库没有限制,可以通过在 NumPy 中进行索引轻松实现:

import numpy as np

s = np.array(L)
s[s > 200].min()
# 202

非常推荐在大型数组上使用 NumPy,它可以在性能和内存使用方面(在大型数组上)以更有效的方式轻松处理此类问题。

这个解决方案没有这个快,只是一个替代方案:

min(L, key=lambda x: x>200 and x or float('inf'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM