Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有NaN值的列表的Python-min()max()_Python_Python 3.x_Spyder - Fatal编程技术网

具有NaN值的列表的Python-min()max()

具有NaN值的列表的Python-min()max(),python,python-3.x,spyder,Python,Python 3.x,Spyder,有谁能告诉我,当NaN是列表的第一个元素时,为什么使用min(list)在列表中查找最小值不起作用?当使用max(列表)时,同样适用 您可以过滤y或w以忽略nan: print(min(i for i in y if not math.isnan(i))) # 0 对nan执行的任何带有数字的比较操作都将返回False 如果内置函数在比较元素时遵循相同的逻辑,则上述行为很容易解释。如果第一个元素被选为min元素,那么之后的任何比较都将是False,因此返回nan作为min元素。虽然这是真的,但

有谁能告诉我,当NaN是列表的第一个元素时,为什么使用min(list)在列表中查找最小值不起作用?当使用max(列表)时,同样适用


您可以过滤
y
w
以忽略
nan

print(min(i for i in y if not math.isnan(i)))
# 0

nan执行的任何带有数字的比较操作都将返回False


如果内置函数在比较元素时遵循相同的逻辑,则上述行为很容易解释。如果第一个元素被选为min元素,那么之后的任何比较都将是False,因此返回nan作为min元素。

虽然这是真的,但我认为这并不能回答OP关于它为什么不工作的问题,这与python如何将元素与它所做的NaNYes进行比较有关。谢谢
print(min(i for i in y if not math.isnan(i)))
# 0
print(y[1] > y[0])
print(y[1] < y[0])
False
False