Python 在具有两个条件的嵌套列表中查找最小值

Python Find Min value in a Nested List with two conditions

我正在尝试从带有条件的嵌套列表中获取最小值,但我不确定如何以 pythonic 方式将两个或多个条件传递给最小值函数。

a=[['246', 'Y', '', '29386.00', '29387.00'], ['247', 'N', '', '29286.00', ' 29287.00'], ['248', 'N', '', '', '20919.00'], ['249', 'N', '', '20918.00', '20928.00'], [ '250', 'N', '', '29266.00', '29267.00']]

在上面的列表中,我只想在第3个元素不为零或不为空且内部列表中的第二个元素为"N"时获取第3个元素的最小值。

所以,对于上面的列表示例,返回的最小值应该是 20918,但我得到的是空白。

试过这个:

>>> min(x[3] for x in a if x[1] == 'N')
''
>>> 

提前致谢。

试试这个:min([x[3] for x in a if x[1] == 'N' and x[3] != ''])

问题是:

  • 您要比较的值是字符串,例如'20918',不是整数,即 20918
  • 其中一个 x[3] 值是空字符串,即 "less than" 非空字符串