5

例如:

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

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

示例:否定

print(min(a)) = -5 

积极的

print(min(a)) = 1
4

4 回答 4

10

为了获得最小负数:

min(a)

为了获得最小的积极性:

min(filter(lambda x:x>0,a))

于 2013-03-12T16:52:07.197 回答
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如果不包含任何负值或任何正值,则可能需要特殊处理。

于 2013-03-12T16:24:07.490 回答
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]
于 2021-03-07T18:22:55.500 回答
-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
>>>

注意:如果列表中没有数字 >= 0,这将返回 0。

于 2013-03-12T16:49:19.247 回答