这可能是一个简单的问题,但是,让我们说我们有一个数组:
a = [0,10,20]
检索大于0的最小值的最简单方法是什么?在这种情况下,它将是10。
答案 0 :(得分:3)
或生成器上的min
:
min(x for x in a if x > 0)
示例:
a = [0,10,20]
print(min(x for x in a if x > 0))
# 10
答案 1 :(得分:3)
我可以不使用numpy进行尝试。
def findValue():
a = [0,10,5,20]
a.sort()
noToCheck = 0
for i in a:
if i > noToCheck :
print("Found value: ", i)
break
findValue()
答案 2 :(得分:2)
由于您在代码中加入了Numpy,我假设您对Numpy的解决方案感到满意吗?
import numpy as np
a = np.array([0,10,20])
np.min(a[a > 0])
出[1]:10
答案 3 :(得分:2)
不漂亮
a = [0, 10, 20]
def find_lowest_num(a):
lowest_num = None
for element in a:
if lowest_num is None and element > 0:
lowest_num = element
elif lowest_num is None and element == 0:
pass
else:
if element < lowest_num and element > 0:
lowest_num = element
return lowest_num
print(find_lowest_num(a))
答案 4 :(得分:1)
您可以通过按键使用min()
函数:
min(a, key=lambda x: float("inf") if x<=0 else x)