如何在Python中使用自定义谓词排序

发布于 2021-01-29 15:01:25

我有一个列表列表,例如[[1,2,"s"],[1,5,"e"],...]第3个值始终为se。我sort()该如何调用以使列表基于以下内容进行排序:

  1. 第一个索引
  2. 如果第一个索引相同,则排在第s一位。

谢谢

关注者
0
被浏览
60
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    编写一个自定义key函数。

    def sort_key(list_):
        if list_[2] == 's':
            return (list_[0], 0)
        return (list_[0], 1)
    
    test_list = [[1, 2, 's'], [1, 5, 'e'], [2, 4, 'e'], [2, 3, 's']]
    test_list.sort(key=sort_key)
    # [[1, 2, 's'], [1, 5, 'e'], [2, 3, 's'], [2, 4, 'e']]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看