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 布尔操作实现代码
Mar 23 Python
使用Python实现BT种子和磁力链接的相互转换
Nov 09 Python
详解Python的Lambda函数与排序
Oct 25 Python
用python实现的线程池实例代码
Jan 06 Python
python实现用户管理系统
Jan 10 Python
python 中if else 语句的作用及示例代码
Mar 05 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 Python
使用python求解二次规划的问题
Feb 29 Python
python属于解释型语言么
Jun 15 Python
python exit出错原因整理
Aug 31 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入门教程之数学运算技巧总结
2016/09/11 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
jquery 读取页面load get post ajax 四种方式代码写法
2011/04/02 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
详解react native页面间传递数据的几种方式
2018/11/07 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
Python生成随机密码
2015/03/10 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
如何实现jdbc性能优化
2012/07/30 面试题
就业自荐信
2013/12/04 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
心术观后感
2015/06/11 职场文书
在人间读书笔记
2015/06/30 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
js不常见操作运算符总结
2021/11/20 Javascript
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫