python中没有用于max函数的cmp关键字

时间:2012-08-07 10:50:53

标签: python max cmp

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

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

在任何情况下,任何人都知道最狡猾的方式解决这个问题?我不想为类本身覆盖__cmp__,而我能想到的其他选项如sorted(L,cmp=compare)[0]似乎很难看。这样做的好方法是什么?

实际示例以L=[a1,a2,...,an]给出,其中每个ak本身就是一个整数列表,我们希望ai<aj在词典意义上的最大值。

1 个答案:

答案 0 :(得分:4)

请勿使用cmp。它已从Python3中删除,转而使用key

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

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