最小(或最大)变量的起始值是多少?

What's a good starting value for a min (or max) variable?

假设我正在跟踪遍历列表或整数流时遇到的最大值。传统的变量初始化是这样的:

maxNum = <min-possible-value>

for num in listOfNums:
    maxNum = max(maxNum, num)

鉴于 sys.maxint 不是 Python3 中的内容,而且实际上 int 的大小没有限制,我应该怎么办将 maxNum 初始化为?或者有什么更好的替代方法来做到这一点?

(注意:sys.maxsizesys.maxint 不完全相同,是的 int 可以容纳大于 sys.maxsize 的值)

math.inf可行吗?请注意,此值是一个浮点数而不是一个 int

您可以使用 float('inf')float('-inf') 来生成始终分别评估为大于或小于典型数字的值。

使用列表的第一个元素。

maxNum = listOfNums[0]

for num in listOfNums:
    maxNum = max(maxNum, num)

唯一的问题是 listOfNums 是否为空。如果这是可能的,你应该在这段代码之前检查它(无论如何你需要这样做,所以你可以在这种情况下适当地分配 maxNum)。

if listOfNums:
    maxNum = listOfNums[0]
    for num in listOfNums:
        maxNum = max(maxNum, num)
else:
    maxNum = None

您要找的东西叫做 identity element 最大函数。不同的功能有不同的标识元素。

在最大函数的情况下,该值为-∞,我希望它在数学上下文中,所以:

import math
maximum_identity_element = -math.inf

你为什么一次只做一个元素?你可以简单地使用

maxnum = max(ListOfNums)

否则,请为您的基本类型使用适当的 -inf 值。