[英]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.