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" 非空字符串
我正在尝试从带有条件的嵌套列表中获取最小值,但我不确定如何以 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" 非空字符串