【问题标题】:How to customize my own compare function in Python 3如何在 Python 3 中自定义我自己的比较函数
【发布时间】:2018-10-31 22:01:00
【问题描述】:

有没有办法在 Python 3 中自定义比较函数?例如,有一个列表:[[1, a], [1, b], [2, b], [2, a], [3, a]]。首先,根据整数排序,从大到小,如果整数相同,则根据字母排序,按字典顺序。这完全是两个不同的顺序,第一个是颠倒的,第二个不是。所以我不能只使用'reverse = True'来处理它。

我知道 Python 2 中有 cmp 可以帮助我定义自己的比较函数。但是如何在 Python 3 中做到这一点?

任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: python python-3.x compare


    【解决方案1】:

    您可以使用返回要排序的项目的元组的键函数。对倒序的数字项取反:

    l = [[1, 'a'], [1, 'b'], [2, 'b'], [2, 'a'], [3, 'a']]
    print(sorted(l, key=lambda t: (-t[0], t[1])))
    

    这个输出:

    [[3, 'a'], [2, 'a'], [2, 'b'], [1, 'a'], [1, 'b']]
    

    【讨论】:

    • 很高兴能提供帮助。如果您认为此答案正确,您能否将其标记为已接受? (点击答案旁边的灰色复选标记。)
    猜你喜欢
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2014-10-25
    • 1970-01-01
    相关资源
    最近更新 更多