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

时间:2018-10-16 22:54:41

标签: lambda conditional-statements nested-lists

我正在尝试从带有条件的嵌套列表中获取最小值,但我不确定如何以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个元素不为零或为null且内部列表中的第二个元素为“ N”时,我才想获取第3个元素的最小值。

因此,对于上面的列表示例,返回的最小值应为20918,但我正在空白。

尝试过:

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

谢谢。

1 个答案:

答案 0 :(得分:1)

尝试以下操作:min([x[3] for x in a if x[1] == 'N' and x[3] != ''])

问题是:

  • 您要比较的值是字符串,例如'20918',而不是整数,即20918
  • x[3]值之一是一个空字符串,它“小于”一个非空字符串