代码之家  ›  专栏  ›  技术社区  ›  Reman

如何对以大写字母开头的嵌套列表进行反向排序?

  •  9
  • Reman  · 技术社区  · 7 年前

    列表 r :

    r= [['Paris', 10], ['amsterdam', 5], ['London', 18], ['london', 15], ['Berlin', 2], ['Stockholm', 4], ['oslo', 14], ['helsinki', 16], ['Zurich', 17]] 
    

    sorted(r, reverse=True)
    
    [['oslo', 14], ['london', 15], ['helsinki', 16], ['amsterdam', 5], ['Zurich', 17], ['Stockholm', 4], ['Paris', 10], ['London', 18], ['Berlin', 2]]
    

    [ ['Zurich', 17], ['Stockholm', 4], ['Paris', 10], ['London', 18], ['Berlin', 2], ['oslo', 14], ['london', 15], ['helsinki', 16], ['amsterdam', 5]]
    

    1 回复  |  直到 7 年前
        1
  •  17
  •   DeepSpace    7 年前

    key 功能:

    >> sorted(r, key=lambda e: (not e[0].islower(), e[0]), reverse=True)
    [['Zurich', 17], ['Stockholm', 4], ['Paris', 10], ['London', 18], ['Berlin', 2],
     ['oslo', 14], ['london', 15], ['helsinki', 16], ['amsterdam', 5]]