例如:
a=[-5,-3,-1,1,3,5]
我想找到一个负面和正面的最小值。
例如: 负
print(min(a)) = -5
阳性
print(min(a)) = 1
答案 0 :(得分:10)
获得最低限度的否定:
min(a)
获得最低限度的积极性:
min(filter(lambda x:x>0,a))
答案 1 :(得分:8)
>>> a = [-5,-3,-1,1,3,5]
>>> min(el for el in a if el < 0)
-5
>>> min(el for el in a if el > 0)
1
如果a
不包含任何负值或任何正值,则可能需要特殊处理。
答案 2 :(得分:0)
x = [-5,-3,-1,1,3,5]
# First min is actual min, second is based on absolute
sort = lambda x: [min(x),min([abs(i) for i in x] )]
print(sort(x))
[-5, 1]
[Program finished]
答案 3 :(得分:-1)
使用functools.reduce
>>> from functools import reduce
>>> a = [-5,-3,-1,2,3,5]
>>> reduce(lambda x,y: x if 0 <= x <=y else y if y>=0 else 0, a)
2
>>> min(a)
-5
>>>
注意:如果列表中没有数字&gt; = 0,则返回0。