如何对两个字符串应用转换以颠倒字典比较的结果?

问题描述

例如,两个整数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)

有关更多说明,请参见https://docs.python.org/3.8/howto/sorting.html