Python按照list dict key进行排序过程解析

 更新时间:2020年04月04日 12:41:18   作者:青春叛逆者  
这篇文章主要介绍了Python按照list dict key进行排序过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在做项目的时候,遇到这样的数据:

"trends": [
        {
          "name": "Rick Gates",
          "promoted_content": null,
          "query": "%22Rick+Gates%22",
          "tweet_volume": 135732,
          "url": "http://twitter.com/search?q=%22Rick+Gates%22"
        },
        {
          "name": "#TheBachelorette",
          "promoted_content": null,
          "query": "%23TheBachelorette",
          "tweet_volume": 91245,
          "url": "http://twitter.com/search?q=%23TheBachelorette"
        },
        {
          "name": "#KremlinAnnex",
          "promoted_content": null,
          "query": "%23KremlinAnnex",
          "tweet_volume": 42654,
          "url": "http://twitter.com/search?q=%23KremlinAnnex"
        },
        {
          "name": "#LHHH",
          "promoted_content": null,
          "query": "%23LHHH",
          "tweet_volume": 35252,
          "url": "http://twitter.com/search?q=%23LHHH"
        }]

我需要做的就是根据tweet_volume的数值对trends里的元素进行排序。

实现代码:

把上面数据以字典的方式获取,相当于把取出的就是后面的列表,即

trends=[
        {
          "name": "Rick Gates",
          "promoted_content": null,
          "query": "%22Rick+Gates%22",
          "tweet_volume": 135732,
          "url": "http://twitter.com/search?q=%22Rick+Gates%22"
        },
        {
          "name": "#TheBachelorette",
          "promoted_content": null,
          "query": "%23TheBachelorette",
          "tweet_volume": 91245,
          "url": "http://twitter.com/search?q=%23TheBachelorette"
        },
        {
          "name": "#KremlinAnnex",
          "promoted_content": null,
          "query": "%23KremlinAnnex",
          "tweet_volume": 42654,
          "url": "http://twitter.com/search?q=%23KremlinAnnex"
        },
        {
          "name": "#LHHH",
          "promoted_content": null,
          "query": "%23LHHH",
          "tweet_volume": 35252,
          "url": "http://twitter.com/search?q=%23LHHH"
        }]

trends = sorted(trends,key = lambda e:e['tweet_volume'],reverse = True)

考虑到有些数据是NULL,因此需要提前做个处理,对于空的tweet_volume设置为0,完整代码:

for item in trends:
  if(item.get('tweet_volume') is None):
    item['tweet_volume'] = 0
  trends = sorted(trends,key = lambda e:.get('tweet_volume') ,reverse = True)

建议用get方式获取,空值或数据不存在这样不会报错。

在Python文档中看到一种性能更高的方法

通过使用 operator 模块的 itemgetter 函数,可以非常容易的排序这样的数据结构

因此上面的程序可以改写成

from operator import itemgetter
for item in trends:
  if(item.get('tweet_volume') is None):
    item['tweet_volume'] = 0
trends = sorted(trends,key = itemgetter('tweet_volume'),reverse = True)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python排序算法之归并排序

    python排序算法之归并排序

    这篇文章主要介绍了python排序算法之归并排序,归并排序算法就是一个先把数列拆分为子数列,对子数列进行排序后,再把有序的子数列合并为完整的有序数列的算法,需要的朋友可以参考下
    2023-04-04
  • Django 查询数据库返回JSON的实现

    Django 查询数据库返回JSON的实现

    和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式,本文就来介绍一下,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Python快速从注释生成文档的方法

    Python快速从注释生成文档的方法

    这篇文章主要介绍了Python快速从注释生成文档的方法的相关资料,非常的简单实用,需要的朋友可以参考下
    2016-12-12
  • 深入解析Python中的lambda表达式的用法

    深入解析Python中的lambda表达式的用法

    这篇文章主要介绍了深入解析Python中的lambda表达式的用法,包括其与def之间的区别,需要的朋友可以参考下
    2015-08-08
  • Python中re模块的常用方法总结

    Python中re模块的常用方法总结

    这篇文章主要给大家介绍了关于Python中re模块的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python 检测图片是否有马赛克

    python 检测图片是否有马赛克

    这篇文章主要介绍了python 如何检测图片是否有马赛克,帮助大家更好的理解和使用python处理图片,感兴趣的朋友可以了解下
    2020-12-12
  • python之array赋值技巧分享

    python之array赋值技巧分享

    今天小编就为大家分享一篇python之array赋值技巧分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python的输入,输出和标识符详解

    Python的输入,输出和标识符详解

    这篇文章主要介绍了介绍了Python的输入,输出和标识符,有需要的朋友们可以参考一下,希望能给您带来帮助
    2022-01-01
  • 一文详解Python中PO模式的设计与实现

    一文详解Python中PO模式的设计与实现

    在使用 Python 进行编码的时候,会使用自身自带的编码设计格式,比如说最常见的单例模式等。本文将为大家介绍PageObject自动化设计模式(PO模式)的设计与实现,感兴趣的可以了解一下
    2022-06-06
  • python中尾递归用法实例详解

    python中尾递归用法实例详解

    这篇文章主要介绍了python中尾递归用法,较为详细的分析了尾递归原理与相关使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04

最新评论