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

Lambda Python在具有两个条件的嵌套列表中查找最小值,lambda,conditional-statements,nested-lists,Lambda,Conditional Statements,Nested Lists,我试图从带有条件的嵌套列表中获取最小值,但我不确定如何以python方式将两个或多个条件传递给最小值函数 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'] 在上面的列表中,我只想在第三个元素不为零或null且内部列表中的第二个元素为“N”时,获

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

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']

在上面的列表中,我只想在第三个元素不为零或null且内部列表中的第二个元素为“N”时,获得第三个元素的最小值

因此,对于上面的列表示例,返回的最小值应该是20918,但我变为空

我试过这个:

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

试试这个:
min([x[3]表示如果x[1]='N'和x[3]!='')的话,

问题是:

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

谢谢,它工作得很好。有没有一种方法可以使用lamda函数来获得相同的结果?@buggsbunny4我相信你可以使用lambda实现这一点-例如,你可以编写一个lambda,返回
x[3]
给定的
x
-这取决于你想要完成什么。他们的关键是理解字符串比较问题:)