在python 3.3列表中查找最小值

时间:2013-03-12 16:20:25

标签: python python-3.x

例如:

a=[-5,-3,-1,1,3,5]

我想找到一个负面和正面的最小值。

例如: 负

print(min(a)) = -5 

阳性

print(min(a)) = 1

4 个答案:

答案 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。