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实现通过哈希算法检测图片重复的教程
Apr 02 Python
利用Python的Django框架生成PDF文件的教程
Jul 22 Python
Python和Perl绘制中国北京跑步地图的方法
Mar 03 Python
用Python设计一个经典小游戏
May 15 Python
Python虚拟环境项目实例
Nov 20 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
Feb 24 Python
使用Django简单编写一个XSS平台的方法步骤
Mar 25 Python
python遍历文件目录、批量处理同类文件
Aug 31 Python
如何安装2019Pycharm最新版本(详细教程)
Sep 26 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
Jun 29 Python
详解非极大值抑制算法之Python实现
Jun 28 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 jquery 多文件上传简单实例
2013/12/23 PHP
php动态函数调用方法
2015/05/21 PHP
PHP反射API示例分享
2016/10/08 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
详解VUE 数组更新
2017/12/16 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
利用Psyco提升Python运行速度
2014/12/24 Python
Python生成器以及应用实例解析
2018/02/08 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
给酒店员工的表扬信
2014/01/11 职场文书
开学季活动策划方案
2014/02/28 职场文书
《第一朵杏花》教学反思
2014/04/16 职场文书
党员承诺书范文
2014/05/19 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
详解MindSpore自定义模型损失函数
2021/06/30 Python
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫