gpt4 book ai didi

python - max() 在 python2 -> python3 转换中失败,不支持 `>`

转载 作者:行者123 更新时间:2023-12-02 05:16:20 31 4
gpt4 key购买 nike

从 python 2.x -> python 3.x 转换时,我发现内置 max 函数的行为发生了这种变化。我没有发现它记录在任何迁移问题的标准位置。 https://eev.ee/blog/2016/07/31/python-faq-how-do-i-port-to-python-3/ http://python-future.org/compatible_idioms.html

我该如何解决这个问题?

python 2.x:

In [1]: max([None, None, None])
In [2]:

Python 3.x:

In [3]: max([None, None, None])
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last) <ipython-input-3-f82c85b9875c> in <module>()
----> 1 max([None, None, None])

TypeError: '>' not supported between instances of 'NoneType' and 'NoneType'

最佳答案

回答我自己的问题:不存在向后兼容的 max,但是试图找到 None 的最大值确实没有意义是有争议的。

我正在比较的条目是时间戳,我知道它们永远不会是负数。所以我更改了我的代码以返回 0 而不是 None,因此 max 变成了 max([0,0,0] ) 有效。

如果您不能对您的数据做出此类保证,您可以返回 -sys.maxsize

In [7]: max([-sys.maxsize, -sys.maxsize, -sys.maxsize])
Out[7]: -9223372036854775807

请注意 sys.maxsize 而不是 sys.maxint,这是记录在案的更改。 What is sys.maxint in Python 3?

关于python - max() 在 python2 -> python3 转换中失败,不支持 `>`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47614961/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com