从列表中检索最大负数和最小正数

use*_*569 4 python list max min negative-number

给出一个整数列表,例如:

lst = [-5, -1, -13, -11, 4, 8, 16, 32]
Run Code Online (Sandbox Code Playgroud)

是否有一种Pythonic方法来检索列表中最大的负数(例如-1)和列表中最小的正数(例如4)?

Two*_*ist 7

你可以使用列表推导:

>>> some_list = [-5, -1, -13, -11, 4, 8, 16, 32]
>>> max([n for n in some_list if n<0])
-1
>>> min([n for n in some_list  if n>0])
4
Run Code Online (Sandbox Code Playgroud)

  • 你也可以在这里使用一个生成器表达式(我建议不要命名它`l`,也许`lst` - `l`在某些字体中看起来太像`1`. (3认同)
  • 要使用生成器表达式,您可以完全删除`[]`.例如`max(如果n <0,则为some_list中的n为n),在您习惯之后看起来更清洁了. (3认同)