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解析xml模块封装代码
Feb 07 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
Python聊天室程序(基础版)
Apr 01 Python
python学生信息管理系统(初级版)
Oct 17 Python
对python特殊函数 __call__()的使用详解
Jul 02 Python
PyQtGraph在pyqt中的应用及安装过程
Aug 04 Python
python3反转字符串的3种方法(小结)
Nov 07 Python
python opencv 检测移动物体并截图保存实例
Mar 10 Python
学python最电脑配置有要求么
Jul 05 Python
python3.7调试的实例方法
Jul 21 Python
Python在后台自动解压各种压缩文件的实现方法
Nov 10 Python
一行代码python实现文件共享服务器
Apr 22 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,ajax实现分页
2008/03/27 PHP
php 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
2014/10/14 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
Jquery iframe内部出滚动条
2010/02/11 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
JavaScript提高性能知识点汇总
2016/01/15 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
webpack之devtool详解
2018/02/10 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
python轻松实现代码编码格式转换
2015/03/26 Python
Python合并字符串的3种方法
2015/05/21 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
wxpython布局的实现方法
2019/11/01 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
《金钱的魔力》教学反思
2014/02/24 职场文书
教师对学生的评语
2014/04/28 职场文书
特教教师先进事迹
2014/05/21 职场文书
创先争优活动个人总结
2015/03/04 职场文书
婚育证明样本
2015/06/16 职场文书
Python超简单容易上手的画图工具库推荐
2021/05/10 Python
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript