首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在平局的情况下,Python选择的最大值是多少?

在平局的情况下,Python选择的最大值是多少?
EN

Stack Overflow用户
提问于 2011-07-22 05:25:35
回答 2查看 35K关注 0票数 75

在Python语言中使用max()函数查找列表(或元组、字典等)中的最大值时。最大值是平局的,Python会选择哪一个呢?这是随机的吗?

例如,如果具有元组列表,并且基于元组的第一个元素选择最大值(使用key=),但是存在不同的第二个元素,则这是相关的。Python如何决定选择哪一个作为最大值?

EN

回答 2

Stack Overflow用户

发布于 2011-07-22 05:30:31

根据经验测试,列表上的max()min()似乎将在平局的情况下返回列表中与max()/min()匹配的第一个:

代码语言:javascript
复制
>>> test = [(1, "a"), (1, "b"), (2, "c"), (2, "d")]
>>> max(test, key=lambda x: x[0])
(2, 'c')
>>> test = [(1, "a"), (1, "b"), (2, "d"), (2, "c")]
>>> max(test, key=lambda x: x[0])
(2, 'd')
>>> min(test, key=lambda x: x[0])
(1, 'a')
>>> test = [(1, "b"), (1, "a"), (2, "d"), (2, "c")]
>>> min(test, key=lambda x: x[0])
(1, 'b')

Jeremy's excellent sleuthing证实确实是这样的。

票数 22
EN

Stack Overflow用户

发布于 2011-07-22 05:37:40

你的问题在某种程度上引出了一个注释。在对数据结构进行排序时,通常希望保持对象的相对顺序,这些对象出于比较的目的而被认为是相等的。这将被称为stable sort

如果你确实需要这个特性,你可以做一个sort(),它是will be stable,然后知道相对于原始列表的顺序。

就python本身而言,我不相信在调用max()时你会得到任何保证,你会得到哪个元素。其他答案给出了cpython的答案,但其他实现(IronPython、Jython)可能会有不同的功能。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6783000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档