今天为大家带来的内容是:原来python中dict()的高级用法可以这样实现!真是让我长了见识。

本文内容主要介绍了python中dict()的高级用法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,喜欢的话记得点赞转发关注哦!!!

collections中defaultdict的用法

一、字典的键映射多个值

将下面的列表转换成字典

一个字典就是一个键对应一个单值得映射,而上面的列表中有相同的键,如果你想要一个键映射多个值,那么就需要将这多个值放到另外的序列中,比如list或者set里面,像下面这样:

你可以很方便的使用 collections 模块中的 defaultdict 来构造这样的字典。

defaultdict 的一个特征是它会自动初始化每个 key 刚开始对应的值。

嗨喽:正在学习python的小伙伴或者打算学习的,可以私信小编“07”领取资料!

当然这个默认的容器不一定是 list, 也可以是集合 set。 根据自己的需求选择使用 list 还是 set 。如果你想保持元素的插入顺序就应该使用列表,如果想去掉重复元素就是用集合。

二、统计字典中某个值出现的次数

现在有一个列表,列表中有很多字典,需要统计字典中相同的键对应的值得和

利用defaultdict 设置默认值的方法 defaultdict(int) ,代码如下:

collections 创建有序字典

字典dict是无序的,如果我们想要有序的字典,可以使用 OrderedDict,示例如下:

需要注意的是,一个 OrderedDict 的大小是一个普通字典的两倍,因为它内部维护着另外一个链表,所以如果你需要构建一个需要大量 OrderedDict 实例的数据结构的时候(比如读取100,000行CSV数据到一个 OrderedDict 列表中),那么你就得仔细权衡一下是否使用 OrderedDIict 带来的好处要大过于额外内存消耗的影响。

改变key-value的顺序

OrderedDict 是有序的字典,同时也能改变其顺序,比如我们想要改变有序的 OrderedDict 对象的key-value 顺序,可以使用 move_to_end(key), 还是以上面创建的有序字典为例子:

可以看到之前排在第一位的 bar 被移到最后一位了,move_to_end还接收一个关键字参数 last,last默认为True,当last=False时,表示将该键移动到最前面。

删除key_value

如果我们要删除有序字典中的 key_value,可以使用 popitem 方法,popitem(last=True)按照先进后出的顺序删除 dict 中的key_value,popitem(last=False) 按照先进先出的顺序删除dict中的 key_value

字典排序

利用python 内置函数 sorted 对字典的键或者值进行排序,首先来了解下sorted 函数:

 sorted(iterable, key=None, reverse=False)

参数说明:

  • iterable -- 可迭代对象
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

按照key进行排序

理解了 sorted 函数就好办了,代码如下:

按照value进行排序

代码如下:

嗨喽:正在学习python的小伙伴或者打算学习的,可以私信小编“07”领取资料!

注意排序后的返回值是一个list,而原字典中的名值对被转换为了list中的元组。

通过某个关键字排序一个字典列表

假设你有一个字典列表,如下:

你想根据某个或某几个字典字段来排序这个列表。

通过使用 operator 模块的itemgetter函数,可以非常容易地排序这样的数据结构,代码如下:

itemgetter() 函数也支持多个 keys,比如下面的代码:

好了,上面就是字典的一些高级用法,先到这里吧,我们下次继续…

以上就是本文的全部内容,希望对大家的学习有所帮助!!!

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。

python 字典排序成绩_原来python中dict()的高级用法可以这样实现!真是让我长了见识...相关推荐

  1. python 字典排序成绩_集体备课第四章 python基础与顺序结构

    第四章   第一节 python基础 填写上机记录:日期:9.28 班级:  节次:5     内容:python基础 下课时,整理好座椅后,再离开. 1.数据类型: 数字(整数(int).float ...

  2. python字典怎么设置_在python中设置字典中的属性

    在python中设置字典中的属性 是否可以在python中从字典创建一个对象,使每个键都是该对象的属性? 像这样的东西: d = { 'name': 'Oscar', 'lastName': 'Rey ...

  3. python字典键盘添加元素_对python字典元素的添加与修改方法详解

    1.字典中的键存在时,可以通过字典名+下标的方式访问字典中改键对应的值,若键不存在则会抛出异常.如果想直接向字典中添加元素可以直接用字典名+下标+值的方式添加字典元素,只写键想后期对键赋值这种方式会抛 ...

  4. python字典操作函数_【python】字典的操作方法和函数

    一.字典内置函数&方法 Python字典包含了以下内置函数: 1.cmp(dict1, dict2):比较两个字典元素. 2.len(dict):计算字典元素个数,即键的总数. 3.str(d ...

  5. python字典添加列表_【Python】对字典列表进行去重追加

    [TOC] 目标 现有字典列表 # A = [ {dict1}, {dict2} ] B = [ {dict3}, {dict2} ] C = [ {dict3}, {dict4} ] M = [A, ...

  6. python字典的特点是什么_Python中dict的特点

    dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样.而list的查找速度随着元素增加而逐渐下降. 不过dict的查找速度快不是没有代价的,dict的缺点是占用内 ...

  7. python提前查成绩_利用Python来查询自己的成绩!想改成绩吗?我教你啊!

    前言 前段时间在公众号发布了一篇用Python网络爬虫来获取百度贴吧某帖子内所有图片的文章.写的确实不好.很多地方连我自己都搞不明白,这篇文章笔者尽量把它写好,写明白.还望各位大佬海涵. 这个系列是干 ...

  8. python excel处理成绩_用Python操作Excel,实现班级成绩的统计

    本次是在原来有一定格式的Excel文档中补充成绩. 安装的模块:xlwt . xlrd .xlutils xlrd的模块是只用读取xls文件,不能写文件,同理xlwt,只(新建写)不读已有的xls, ...

  9. python字典排序sort_Python字典排序

    利用引出一个例子来理解 例如:比如使用Python字典排序,d={'a':1,'c':3,'b':2}按值升序排列,我们可以用sorted高阶函数或者用列表的.sort()方法.下面具体阐述两种排序方 ...

  10. python字典排序|按值排序|按键排序

    python字典排序 用sorted函数 字典按值排序 sorted(dic.items(), key=lambda x:x[1], reverse=True) dic为字典名 reverse为Tru ...

最新文章

  1. 【每日一算法】罗马数字转整数
  2. 0-1背包 一维数组为什么逆序枚举
  3. 360导航源码php,114啦网址导航源码仿360网址导航最新版
  4. JavaEE是什么?
  5. kafka 串讲:架构模型、角色功能梳理
  6. Windows Phone开发(11):常用控件(下) 转:http://blog.csdn.net/tcjiaan/article/details/7300085...
  7. javaweb基础 - Servlet
  8. c语言计算结果为1. inf0000,C语言复习题及答案老师给的
  9. J2EE中使用MediaInfo库获取视频信息
  10. Ubuntu16.04安装slickedit-pro2017
  11. 数组输出c语言程序,C语言输出数组的三种方法
  12. JAVA类似ABP框架_【Net】ABP框架学习之它并不那么好用
  13. 【解决】updateAppMessageShareData:fail, the permission value is offline verifying
  14. 名帖52 王献之 小楷《洛神赋》
  15. 曾经的大学德育论文,致敬天津理工大学
  16. 云摆摊 | 手把手教你制作ESP8266物联网创意点阵时钟,女朋友看了都想要!
  17. 毛笔笔刷书法签名手写字体设计 Brightwall – Brush Signature Font
  18. Skyline系列软件(综述)
  19. 多维数据模型与大数据应用
  20. 计算机专业的个人简历英语,计算机专业优秀个人英文简历范文【三篇】

热门文章

  1. 【优化算法】粒子群算法和混沌搜索协同优化算法【含Matlab源码 1299期】
  2. 【图像修复】基于matlab GUI约束最小二乘方滤波图像复原【含Matlab源码 852期】
  3. 【印刷字符识别】基于matlab OCR键盘数字+字母识别【含Matlab源码 807期】
  4. 【电路仿真】基于matlab Simulink光伏太阳能电池板仿真模型【含Matlab源码 771期】
  5. AMOS结构方程模型(SEM)简介【SPSS 049期】
  6. SPSS 有调节的中介与有中介的调节【SPSS 042期】
  7. poi 获取删除线_Houdini 删除相机看不到的点背面的点或面
  8. 永久删除谷歌浏览器缩略图_“暮光之城”如何永久破坏了Google图片搜索
  9. 吃豆人 博弈_强化吃豆人
  10. 无法启动mysql server问题:“1067”进程意外终止