python - python中max函数没有cmp关键字

标签 python max cmp

因此,在 python 中对列表进行排序时,sorted函数可以采用 cmp关键字覆盖 __cmp__我们正在排序的对象的函数。

我希望max拥有类似的关键字,但事实并非如此。人们知道为什么吗?

无论如何,有人知道解决这个问题的最Pythonic的方法吗?我不想覆盖 __cmp__对于类(class)本身,以及我能想到的其他选项,例如 sorted(L,cmp=compare)[0]看起来很丑。什么是一个好的方法来做到这一点?

实际示例为 L=[a1,a2,...,an]其中每个 ak本身就是我们想要的最大值的整数列表,其中 ai<aj是字典意义上的。

最佳答案

不要使用cmp。它已从 Python3 中删除,取而代之的是 key

由于 Python 按字典顺序比较字符串,因此您可以使用 key = str 来查找“最大”整数:

In [2]: max([10,9], key = str)
Out[2]: 9

关于python - python中max函数没有cmp关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11844335/

相关文章:

python - 使用递归搜索在列表中查找最大值的时间复杂度

python - 我如何更改实例的 __cmp__ 函数(不在类里面)?

python - 给定一个描述 object.attribute 的 Python 字符串,如何将属性的命名空间与属性分开?

python - 创建银行的 IF 中的可变输入。

python - 如何从 Pandas 数据框中删除特定列中包含任何字符串的行

java - 获取 "maximum value entered by user"吗?

python - 使用 python 解析树

javascript - JavaScript 中的 Math.max 函数

assembly - 比较汇编中的整数值

java - 将 PEM 证书或 Java 证书转换为 ASN1 证书