python字典高级用法_Python 字典的高级用法
一、 collections 中 defaultdict 的使用
1.一个字典映射多个值:
待处理字典:
l = [(‘a’,2),(‘b’,3),(‘a’,1),(‘b’,4),(‘a’,3),(‘a’,1),(‘b’,3)]
不用defaultdict时需要给字典的value设置默认值(防止key对应的value不存在):
l = [('a',2),('b',3),('a',1),('b',4),('a',3),('a',1),('b',3)]
d = {}
for key,value in l:
# setdefault()方法用于获取指定key对应的value
# 如果该key不存在,则先将该key对应的value设置为默认值:[]
d.setdefault(key,[]).append(value)
print(d)
print(list(d.items()))
运行结果:
{‘a’: [2, 1, 3, 1], ‘b’: [3, 4, 3]}
[(‘a’, [2, 1, 3, 1]), (‘b’, [3, 4, 3])]
有了defaultdict后,方便了很多:
l = [('a',2),('b',3),('a',1),('b',4),('a',3),('a',1),('b',3)]
from collections import defaultdict
# 创建defaultdict,设置由list()函数来生成默认值
d1 = defaultdict(list)
for key,value in l:
# 直接访问defaultdict中指定key对应的value即可。
# 如果该key不存在,defaultdict会自动为该key生成默认值
d1[key].append(value)
print(d1)
运行结果:
defaultdict(, {‘a’: [2, 1, 3, 1], ‘b’: [3, 4, 3]})
2.统计字典中某个值出现的总和
列表中有很多字典,需要统计字典中相同的键对应的值的和
利用 defaultdict 设置默认值的方法 defaultdict(int)
from collections import defaultdict
d = defaultdict(int)
#以下四个key-value,对应本人大学期间考的四六级分数=_=
score = [{'cet4':547},{'cet6':450},{'cet6':464},{'cet6':437},{'cet6':445}]
for s in score:
for key,value in s.items():
d[key] += value
print(d)
运行结果:
defaultdict(, {‘cet4’: 547, ‘cet6’: 1796})
同理,统计字典中某个值出现的次数
from collections import defaultdict
d = defaultdict(int)
#以下四个key-value,对应本人大学期间考的四六级分数=_=
score = [{'cet4':547},{'cet6':450},{'cet6':464},{'cet6':437},{'cet6':445}]
for s in score:
for key,value in s.items():
d[key] += 1
print(d)
运行结果:
defaultdict(, {‘cet4’: 1, ‘cet6’: 4})
二、collections 创建有序字典
字典dict是无序的,如果我们想要有序的dict,可以使用OrdereDict
OrderedDict 内部维护着一个根据键插入顺序排序的双向链表。每次当一个新的元素插入进来的时候,它会被放到链表的尾部。对于一个已经存在的键的重复赋值不会改变键的顺序。
需要注意的是,一个 OrderedDict 的大小是一个普通字典的两倍,因为它内部维护着另外一个链表。
改变 key-value 的顺序
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。
三、字典排序
1.按照key进行排序
2.按照value进行排序
四、通过某个关键字排序一个字典列表
from operator import itemgetter
通过使用operator模块的 itemgetter函数实现
python字典高级用法_Python 字典的高级用法相关推荐
- python字典实现原理_Python字典底层实现原理详解
在Python中,字典是通过散列表或说哈希表实现的.字典也被称为关联数组,还称为哈希数组等.也就是说,字典也是一个数组,但数组的索引是键经过哈希函数处理后得到的散列值.哈希函数的目的是使键均匀地分布在 ...
- python字典定义方式_Python字典常用方法及汇总
字典的概念 字典是"键值对"的无序可变序列,字典中的每个元素都是一个"键值对",包含:"键对象"和"值对象".可以通过& ...
- python字典去重合并_Python字典及基本操作(超级详细)
Python字典及基本操作(超级详细) 收录于话题#Python入门27个 今天小张帮大家简单介绍下Python的一种数据结构: 字典,字典是 Python 提供的一种常用的数据结构,它用于存放具有映 ...
- python中采用字典建立统_Python字典的基本使用
本文首发于公众号「猿天罡」,转载请注明出处,谢谢. 前言 相比于列表,字典是更为灵活的一种数据结构.它能将相关信息关联起来,本文中我们一起来学习Python字典的基本用法,即如何添加.访问.修改和删除 ...
- python字典经典例题_python 字典(Dictionary)的一些内置函数和经典例题
字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 修改字典 向字典添加新 ...
- python中的字典推导式_python 字典推导式(经典代码)(22)
文章首发微信公众号,微信搜索:猿说python 在昨天的文章中,我们介绍了关于字典推导式使用方法其实也类似,也是通过循环和条件判断表达式配合使用,不同的是字典推导式返回值是一个字典,所以整个表达式需要 ...
- 用来处理python字典的方法_python字典的常用方法总结
python中字典是非常常用的数据类型,了解各种方法的作用及优缺点对于字典的使用非常有用. dict.clear() 的方法用于清空所有的键值对,清空后字典变成空字典.代码示例如下: data = { ...
- python方向键键值_python字典键值对的添加和遍历方法
添加键值对 首先定义一个空字典 >>> dic={} 直接对字典中不存在的key进行赋值来添加 >>> dic['name']='zhangsan' >> ...
- dictionary在python中什么意思_Python 字典(Dictionary)操作详解
Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = { ...
最新文章
- java中unknown source_java中GUI编程中的unknown source问题
- linux脚本或关系表达,Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等...
- leetcode算法题--两个字符串的最小ASCII删除和★
- jquery动态加载JS【方法getScript】的改进
- 28个不得不看的经典编程算法!!
- fastjson和json-lib的区别
- python 并发编程 多进程 目录
- Linux 远程和本地的一些解决方案
- 一 c语言程序设计 张玉生版
- CAD中怎么将Z轴归零?CADZ轴归零教程
- 合同原件、传真件、扫描件法律效力解析
- 设计模式之里氏宗青出于蓝而胜于蓝
- Hadamard 积, Kronecker 积 和 Khatri- Rao积
- checkboxlist控件用法
- 乐高拉力机器人图纸_乐高MOC图纸分享:乐高MINI机器人制作教程(图文版)
- SpringMVC拦截器
- UIScrollView的重用机制的理解[转]
- 一种改进的鲸鱼优化算法
- 小灰灰的springboot的学习之路(一):在MyEclipse中创建SpringBoot项目
- [article][几米的画]寂寞的样子