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


Posted in Python onApril 04, 2020

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

"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 SqlAlchemy
Feb 12 Python
python 循环while和for in简单实例
Aug 16 Python
python模拟登录并且保持cookie的方法详解
Apr 04 Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
python2.6.6如何升级到python2.7.14
Apr 08 Python
python在文本开头插入一行的实例
May 02 Python
python获取本机所有IP地址的方法
Dec 26 Python
python游戏地图最短路径求解
Jan 16 Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 Python
Python : turtle色彩控制实例详解
Jan 19 Python
Python 线性回归分析以及评价指标详解
Apr 02 Python
详解python中groupby函数通俗易懂
May 14 Python
Django高并发负载均衡实现原理详解
Apr 04 #Python
Django调用支付宝接口代码实例详解
Apr 04 #Python
基于python检查SSL证书到期情况代码实例
Apr 04 #Python
python zip,lambda,map函数代码实例
Apr 04 #Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 #Python
150行Python代码实现带界面的数独游戏
Apr 04 #Python
Python decorator拦截器代码实例解析
Apr 04 #Python
You might like
php session 检测和注销
2009/03/16 PHP
Sorting Array Values in PHP(数组排序)
2011/09/15 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
php获取远程文件大小
2015/10/20 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
jquery之empty()与remove()区别说明
2010/09/10 Javascript
JavaScript作用域链使用介绍
2013/08/29 Javascript
AngularJS入门教程之多视图切换用法示例
2016/11/02 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python 提取文件的小程序
2009/07/29 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
numpy中矩阵合并的实例
2018/06/15 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
2019/08/29 Python
Python类继承和多态原理解析
2020/02/05 Python
巴西最好的男鞋:Rafarillo
2018/05/25 全球购物
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
SEPHORA丝芙兰德国官方购物网站:化妆品、护肤品和香水
2020/01/21 全球购物
思想品德自我评价
2014/02/04 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
2014年大学庆元旦迎新年活动方案
2014/03/09 职场文书
材料员岗位职责
2014/03/13 职场文书
党务公开方案
2014/05/06 职场文书
同事离别感言
2015/08/04 职场文书
严以律己学习心得体会
2016/01/13 职场文书
JavaScript 数组去重详解
2021/09/15 Javascript
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python