2012-08-07 47 views
1

因此,当在python中排序列表时,sorted函数可以使用cmp关键字覆盖我们排序的对象的__cmp__函数。我希望max有类似的关键字,但它不。人们知道为什么?在Python中没有cmp关键字最大功能

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

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

+0

Python的默认行为是比较列表字典顺序 – 2012-08-07 11:09:20

回答

4

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

因为Python字典顺序比较字符串,你可以使用key = str找到“最大”整数:

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

啊,现在你已经提到这个问题,我看到了什么?所以我可以使用'functools.cmp_to_key'和'max'和'sorted'的比较函数 – 2012-08-07 11:00:37