当使用max()
Python 中的函数查找列表(或元组、字典等)中的最大值,并且最大值存在并列,Python 选择哪一个?是随机的吗?
例如,如果一个人有一个元组列表并且一个人选择一个最大值(使用key=
)基于元组的第一个元素,但有不同的第二个元素。 Python 如何决定选择哪一个作为最大值?
它选择它看到的第一个元素。看的文档max():
如果多个项目都最大,则该函数返回遇到的第一个项目。这与其他排序稳定性保持工具一致,例如sorted(iterable, key=keyfunc, reverse=True)[0]
and heapq.nlargest(1, iterable, key=keyfunc)
.
在源码中是这样实现的in ./Python/bltinmodule.c by builtin_max,它包裹着更一般min_max功能.
min_max
将迭代这些值并使用PyObject_RichCompareBool查看它们是否大于当前值。如果是这样,则用较大的值替换它。相同的值将被跳过。
结果是,在平局的情况下将选择第一个最大值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)