zoukankan      html  css  js  c++  java
  • Python-如何对字典集合进行排序

    一: 通过lambda表达式来指定排序字段

    salaries = [{'Alice': 100000, 'Bob': 24000},
                {'Alice': 121000, 'Bob': 48000},
                {'Alice': 12000, 'Bob': 66000}]
    
    Use the sorted() function with key argument to create a new dic.
    sorted_salaries = sorted(salaries, key=lambda d: d['Alice'])
    
    print(sorted_salaries)
    

    二:使用集合遍历器(Itemgetter)来指定排序字段

    from operator import itemgetter
    
    salaries = [{'Alice': 100000, 'Bob': 24000},
                {'Alice': 121000, 'Bob': 48000},
                {'Alice': 12000, 'Bob': 66000}]
    
    sorted_salaries = sorted(salaries, key=itemgetter('Alice'))
    print(sorted_salaries)
    

    三:指定多个排序字段

    db = [{'username': 'Alice', 'joined': 2020, 'age': 23},
          {'username': 'Bob', 'joined': 2018, 'age': 19},
          {'username': 'Alice', 'joined': 2020, 'age': 31}]
    db_sorted = sorted(db, key=lambda row: (row['username'],
                                            row['joined'],
                                            row['age']))
    
    print(db_sorted)
    

    四:指定升序or降序

    db = [{'username': 'Alice', 'joined': '2019-03-02', 'age': 23},
          {'username': 'Bob', 'joined': '2020-08-08', 'age': 19},
          {'username': 'Alice', 'joined': '2019-03-04', 'age': 31}]
    
    db_sorted = sorted(db, key=lambda row: row['joined'], reverse=True)
    print(db_sorted)
    

    或者
    db_sorted = sorted(db, key=lambda row: row['joined'])[::-1]

  • 相关阅读:
    [Graph]Doubling Algorithm
    Luogu 3203 BZOJ 2002——弹飞绵羊
    BZOJ 1468——tree
    BZOJ 10628 Luogu 2633
    Mo's Algorithm
    bzoj1063: [Noi2008]道路设计
    bzoj1264: [AHOI2006]基因匹配Match
    bzoj1177: [Apio2009]Oil
    bzoj1260: [CQOI2007]涂色paint
    bzoj3674: 可持久化并查集加强版
  • 原文地址:https://www.cnblogs.com/airven/p/14250400.html
Copyright © 2011-2022 走看看