代码之家  ›  专栏  ›  技术社区  ›  Lakshya Kashyap

如何先按数字降序排序,然后按字母升序排序

  •  0
  • Lakshya Kashyap  · 技术社区  · 2 年前

    ff = [('o', 2), ('l', 1), ('e', 1), ('g', 2)]
    

    我想以这样一种方式对它进行排序,按数字降序排序,如果任何元素有相同的数字,则按字母表升序排序,如下图所示

    ff = [('g', 2), ('o', 2), ('e', 1), ('l', 1)]
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   j1-lee    2 年前

    sorted key :

    ff = [('o', 2), ('l', 1), ('e', 1), ('g', 2)]
    
    output = sorted(ff, key=lambda x: (-x[1], x[0]))
    
    print(output) # [('g', 2), ('o', 2), ('e', 1), ('l', 1)]
    

    钥匙 , 已排序 -x[1] )然后根据第一个元素按升序排序( x[0]

    推荐文章