问题描述
例如,两个整数a,b,如果a f(s2)和f (s1)== f(s1)?
在python中,这可用于比较字段的元组而无需定义新类。
解决方法
这如何:
>>> def f(s):
... tmp = [-ord(x) for x in s]
... return tmp[::-1]
>>> s1='abc'
>>> s2='abcd'
>>> s1<s2,f(s1)<f(s2)
(True,False)
,
在Python中,您可以构建手动比较功能。有关原始问题的逻辑,请参见下面的解决方案。
class Cmp:
def __init__(self,obj,*args):
self.obj = obj
def __eq__(self,other):
return self.obj == other.obj
def __lt__(self,other):
return self.obj >= other.obj # "reverse" logic
lst = ['ab','ac','aa']
lst.sort(key=Cmp)
print(lst)