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内置函数之filter map reduce介绍
Nov 30 Python
简单了解Django模板的使用
Dec 20 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
python将回车作为输入内容的实例
Jun 23 Python
tensorflow模型继续训练 fineturn实例
Jan 21 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
Python实现寻找回文数字过程解析
Jun 09 Python
Django执行源生mysql语句实现过程解析
Nov 12 Python
Django Paginator分页器的使用示例
Jun 23 Python
python中__slots__节约内存的具体做法
Jul 04 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
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
php源码的安装方法和实例
2019/09/26 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
页面中js执行顺序
2009/11/09 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
Gulp实现静态网页模块化的方法详解
2018/01/09 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
Python3运算符常见用法分析
2020/02/14 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
python 如何对logging日志封装
2020/12/02 Python
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
个人投资计划书
2014/05/01 职场文书
离婚案件答辩状
2015/05/22 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
节约用水广告语60条
2019/11/14 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers