2013-03-12 36 views

Trả lời

10

Đối với việc tiêu cực tối thiểu:

min(a) 

Để nhận được tối thiểu tích cực:

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

+0

Không cần phải nhập giảm. – shantanoo

+0

phút (a) sẽ cung cấp số dương trong trường hợp danh sách chỉ chứa giá trị dương – 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 

xử lý đặc biệt có thể được yêu cầu nếu a không chứa bất kỳ tiêu cực hoặc bất kỳ giá trị tích cực.

-1

Sử dụng 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 
>>> 

Lưu ý: Điều này sẽ trả về 0 nếu không có số> = 0 trong danh sách.

+0

sử dụng 'reduce' cho functools trông giống như một overkill =) – alvas

Các vấn đề liên quan