2013-03-12 13 views

Odpowiedz

10

Dla uzyskania minimum negatywnych:

min(a) 

Dla uzyskania minimum pozytywne:

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

+0

Nie ma potrzeby importowania redukcji. – shantanoo

+0

min (a) da wartość dodatnią, jeśli lista zawiera tylko wartości dodatnie – Pulimon

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 

Specjalne postępowanie może być wymagane, jeżeli a nie zawiera żadnych negatywnych lub żadnych pozytywnych wartości.

-1

Korzystanie 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 
>>> 

Uwaga: To zwróci 0, jeśli nie istnieją żadne numery> = 0 w liście.

+0

używanie 'reduce' dla functools wygląda na przesadę =) – alvas

Powiązane problemy