当前位置: 首页 > 面试题库 >

Python:最大/最小内置函数取决于参数顺序

黄浩涆
2023-03-14
问题内容

max(float('nan'), 1) 评估为nan

max(1, float('nan')) 评估为1

这是预期的行为吗?

感谢您的回答。

max当iterable为空时引发异常。为什么Pythonmax出现时不引发异常nan?或者至少做一些有用的事情,例如returnnan或ignore
nan。当前的行为非常不安全,似乎完全不合理。


问题答案:

In [19]: 1>float(‘nan’)
Out[19]: False

In [20]: float('nan')>1
Out[20]: False

浮点数nan不得大于或小于整数1max首先选择第一个元素,然后仅在找到严格更大的元素时才替换它。

In [31]: max(1,float('nan'))
Out[31]: 1

由于nan不大于1,因此返回1。

In [32]: max(float('nan'),1)
Out[32]: nan

由于1不大于nannan因此返回

PS。请注意,np.max对待方式float('nan')有所不同:

In [36]: import numpy as np
In [91]: np.max([1,float('nan')])
Out[91]: nan

In [92]: np.max([float('nan'),1])
Out[92]: nan

但是,如果您想忽略np.nans,则可以使用np.nanmax

In [93]: np.nanmax([1,float('nan')])
Out[93]: 1.0

In [94]: np.nanmax([float('nan'),1])
Out[94]: 1.0


 类似资料:
  • Python3 实例 以下实例中我们使用max()方法求最大值: 实例(Python 3.0+)# -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 最简单的 print(max(1, 2)) print(max('a', 'b')) # 也可以对列表和元组使用 print(max([1,2])) p

  • 问题内容: 众所周知,Python函数最多可以包含256个参数。我很好奇的是,此限制是否适用以及何时按以下方式展开它们: 我问是因为,假设地,在某些情况下,大于256个项目的列表可能会以或的形式展开。 问题答案: 在Python 3.7和更高版本中,没有限制。这是在问题#27213和问题#12844中完成的工作的结果;#27213重新设计了操作码系列,以提高性能和简化性(3.6的一部分),释放了操

  • 问题内容: 我正在寻找python中整数的最小值和最大值。例如,在Java中,我们有和。python中是否有类似的东西? 问题答案: Python 3 在Python 3中,此问题不适用。普通int类型是无界的。 但是,你实际上可能正在寻找有关当前解释器的字长的信息,在大多数情况下,该信息将与机器的字长相同。该信息在Python 3中仍以形式提供,这是一个有符号的单词可以表示的最大值。等效地,它是

  • 我的问题很简单,但我不知道如何解决我想要的。我必须找到小于给定数字的最大数素数,如果不存在则打印消息。 代码是有效的,如果数字是10,它会打印7,但我想做2个新的修改,我找不到解决方案。例如,如果给定的数字是1,我的程序应该如何修改以打印消息?我试着写一个if-else,但是如果我用if修改了while,这将不会有帮助。第二件事,如果给定的数是素数,代码仍然会找到比给定数少的数。如果我给数字7,输

  • 问题内容: 我正在使用REST访问PHP服务器:所有数据都作为URL参数在GET请求中传递。参数之一以query_string到达服务器,但不在_GET全局中。但是,缩短参数(截止值似乎是512个字符左右)可以让它通过。 假设我已正确诊断问题,是否可以更改此最大大小?我在文档中没有找到任何解释,甚至没有提及此限制。这是在Debian挤压/ Apache 2.2.16 / PHP 5.3.3上。 问

  • 问题内容: 我最近一直在复制和移动大量文件(约40万个)。我知道在Bash命令行上可以扩展的参数数量有限制,因此我一直在使用xargs来限制产生的数量。 出于好奇,我想知道我可以使用的最大参数数目是多少,我发现这篇文章说它是依赖于系统的,我可以运行以下命令来找出: 令我惊讶的是,我回来的答案是: 刚刚超过 260万 。正如我所说,我要处理的文件数量要少得多,大约为40万。我绝对需要使用移动和复制这