最小(或最大)变量的起始值是多少?
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.maxsize
与 sys.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
值。
假设我正在跟踪遍历列表或整数流时遇到的最大值。传统的变量初始化是这样的:
maxNum = <min-possible-value>
for num in listOfNums:
maxNum = max(maxNum, num)
鉴于 sys.maxint
不是 Python3 中的内容,而且实际上 int
的大小没有限制,我应该怎么办将 maxNum 初始化为?或者有什么更好的替代方法来做到这一点?
(注意:sys.maxsize
与 sys.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
值。