• 技术文章 >Python技术 >Python基础教程

    如何在Python中对dicts列表进行排序

    PythonPython2019-06-04 15:20:10原创3061
    问题:在使用MongoDB组合函数(它类似于SQL的GROUP BY)来聚合项目的一些结果。此功能虽然非常酷,但它不会对分组数据进行排序。

    解决:以下是如何对数据进行排序。(它只有一行Python,但很难记住如何做到这一点。)

    DATA是mongoDB组函数的输出。我想按照这个列表来排序'ups_ad'。

    from pprint import pprintDATA = [
        {u'avg': 2.9165000000000001,
         u'count': 10.0,
         u'total': 29.165000000000003,
         u'ups_ad': u'10.194.154.49:80'},
        {u'avg': 2.6931000000000003,
         u'count': 10.0,
         u'total': 26.931000000000001,
         u'ups_ad': u'10.194.155.176:80'},
        {u'avg': 1.9860909090909091,
         u'count': 11.0,
         u'total': 21.847000000000001,
         u'ups_ad': u'10.195.71.146:80'},
        {u'avg': 1.742818181818182,
         u'count': 11.0,
         u'total': 19.171000000000003,
         u'ups_ad': u'10.194.155.48:80'}
        ]data_sorted = sorted(DATA, key=lambda item: item['ups_ad'])pprint(data_sorted)

    结果:

    [{u'avg': 2.9165000000000001,
      u'count': 10.0,
      u'total': 29.165000000000003,
      u'ups_ad': u'10.194.154.49:80'},
     {u'avg': 2.6931000000000003,
      u'count': 10.0,
      u'total': 26.931000000000001,
      u'ups_ad': u'10.194.155.176:80'},
     {u'avg': 1.742818181818182,
      u'count': 11.0,
      u'total': 19.171000000000003,
      u'ups_ad': u'10.194.155.48:80'},
     {u'avg': 1.9860909090909091,
      u'count': 11.0,
      u'total': 21.847000000000001,
      u'ups_ad': u'10.195.71.146:80'}]

    参考文献:

    HowTo / Sorting - PythonInfo Wiki

    排序的内置函数 - Python文档

    专题推荐:python
    上一篇:Python中对切片赋值原理分析 下一篇:Python中UserDict、UserString、UserList有用吗?

    相关文章推荐

    • Python使用Pillow添加图片水印• 深究Python中的asyncio库-shield函数

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网