字典排序 python3_这10个字典操作你必须知道
嗯,干货必须收藏
key是否存在
使用 in
关键字判断key是否存在字典中
d = {"name": "zhang", "age":10}key = "gender"if key in d:pass
不要使用 key in d.keys()
, 这是一种画蛇添足的操作,因为d.keys()会返回一个新的列表对象,导致内存最大。
合并字典
>>> x = {'a': 1, 'b': 2}>>> y = {'b': 3, 'c': 4}>>> {**x, **y}{'a': 1, 'b': 3, 'c': 4}
返回新的字典对象,x和y都不会改变,这是使用了PEP448范化解包操作, 如果 x 和 y 有相同的key, 那么y会覆盖x。 如果使用字典的update
方法,将修改原来的对象,例如:
>>> y.update(x)>>> y{'b': 2, 'c': 4, 'a': 1}
迭代字典
z = {'b': 2, 'c': 4, 'a': 1}>>> for key, value in z.items():print(key, value)b 2c 4a 1
也可以直接对字典z进行迭代,每次迭代返回的是key,前面那种操作 z.items()会返回一个新的对象。
>>> for key in z: print(key, z[key])b 2c 4a 1
字典推导
使用字典推导式快速构建字典对象
>>> fruits = ['apple', 'mango', 'banana','cherry']>>> {f:len(f) for f in fruits}{'apple': 5, 'mango': 5, 'banana': 6, 'cherry': 6}
字典排序
字典本质上是个无序的容器对象(其实Python3.6开始支持有序,不过这个有序是指按照key的添加顺序),如果我们要对字典的 key 或者 value 排序,一般是将其转换为list,再按照key或者value排序。
>>> d = {"c": 3, "a": 1, "f":6, "b": 0}# 按照value排序>>> sorted(d.items(), key=operator.itemgetter(1))[('b', 0), ('a', 1), ('c', 3), ('f', 6)]# 按照key排序>>> sorted(d.items(), key=operator.itemgetter(0))[('a', 1), ('b', 0), ('c', 3), ('f', 6)]>>>
默认值初始化字典
统计列表中每个字母出现的次数
>>> chars = ['a', 'b','c','a','d','c']>>> data = {}>>> for c in chars:... if c in data:... data[c]+=1... else:... data[c] = 0...>>> data{'a': 1, 'b': 0, 'c': 1, 'd': 0}
可以使用 collections.defaultdict 通过工厂函数提供初始化默认值
chars = ['a', 'b','c','a','d','c']
dd = defaultdict(int)for c in chars:dd[c] += 1
>>>defaultdict(, {'a': 2, 'b': 1, 'c': 2, 'd': 1})
defaultdict 是 dict 的子类,继承了 dict 的所有特性, 如果想要初始值为1 怎么办? 可以用lambda函数来指定
dd = defaultdict(lambda: 1)for c in chars:dd[c] += 1
print(dd)>>> defaultdict(lambda> at 0x01226B28>, {'a': 3, 'b': 2, 'c': 3, 'd': 2})
欢迎关注并置顶公众号,方便第一时间收看最新内容
字典排序 python3_这10个字典操作你必须知道相关推荐
- python列表中字典排序_python中字典排序,列表中的字典排序
python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...
- python 按从小到大的顺序组合成一个字典_Python实现字典排序、按照list中字典的某个key排序的方法示例...
本文实例讲述了python实现字典排序.按照list中字典的某个key排序的方法.分享给大家供大家参考,具体如下: 1.给字典按照value按照从大到小排序 排序 dict = {'a':21, 'b ...
- java单词按字典排序_最终Java日志字典:开发人员最常记录的单词是什么?
java单词按字典排序 最终的记录字典,或者:我们记录的最常见单词是什么? 日志文件是调试应用程序的最常用方法,当解决错误时,它们肯定可以引导我们朝正确的方向发展. 但是,大多数日志文件每天都会增加一 ...
- ios 数组中的字典排序_利用数组和字典,实现按指定规则的排序
大家好,今日我们继续讲解数组与字典解决方案,今日讲解第47讲:利用字典和数组,实现按指定规则的排序.随着字典讲解的深入,我们发现字典真的很神奇,在VBA代码中,给人以十分清爽的感觉,在这套数组与字典解 ...
- 字典排序 python3_一步一步学Python3(小学生也适用) 第十二篇: 元组tuple类型
上一篇我们学习了列表(List),这一篇我们将学习元组(Tuple). 一.Python元组(Tuple) python的元组与列表类似,列表使用方括号[ ],元组使用小括号(). 元组的创建跟列表一 ...
- python 字典排序 lambda_Python使用lambda表达式对字典排序操作示例
本文实例讲述了Python使用lambda表达式对字典排序操作.分享给大家供大家参考,具体如下: lambda表达式也常用于字典排序,既然写到字典排序,那就把按键排序和按值排序都写写好了. 字典按键排 ...
- Python字典排序、字典列表排序、嵌套字典排序
python字典是常用的数据结构,经常用到各种python字典的排序,记录一下不同字典排序的方法. 正常字典排序 正常的字典我们都知道,其排序如下: a={100:1,101:0,102:2}b=so ...
- python字典sort_python字典排序
引子 字典,形如 dic = {'a':1 , 'b':2 , 'c': 3},字典中的元素没有顺序,所以dic[0]是有语法错误的.并且不可以有重复的键值,所以 dic.add['c'] = 4后, ...
- python方向键键值_Python实现的字典排序操作示例【按键名key与键值value排序】
本文实例讲述了Python实现的字典排序操作.分享给大家供大家参考,具体如下: 对字典进行排序?这其实是一个伪命题,搞清楚python字典的定义---字典本身默认以key的字符顺序输出显示---就像我 ...
最新文章
- Android上下左右滑动,显示底层布局
- 力扣:11盛水最多的容器
- 关于动画培养灵感的网站
- 16 张图解带你掌握一致性哈希算法
- 如何生成二维码及注意事项
- 用海康威视摄像头做图像处理问题
- iphone如何删除“不可删除”的描述文件?(桌面快捷方式web clib)
- 2022-2028全球阿兹夫定片行业市场现状及未来发展趋势
- 申请苹果公司版开发者账号实录【99美元,非299美元企业版账号】
- safari浏览器找不到服务器怎么办,IOS系统中Safari图标不见了怎么办 safari浏览器不见了找回方法图解...
- linux websphere 端口号,Linux环境下配置websphere7.0的一些命令
- 毕设题目:Matlab车牌识别
- 课后自主练习(排序)1027. 极坐标排序 easy《编程思维与实践》个人学习笔记
- 网络文件共享服务 - Samba详解
- ios tableView那些事 (九) tableview的删除
- 自学mysql还是sql好_都说自学SQL数据库难,是真的吗?
- 300道SpringCloud面试题及答案(最新整理)
- Error creating bean with name 'servletEndpointRegistrar' defined in class path resource
- 总结篇--String、StringBuffer、StringBuilder
- win10神州网信政府版如何修改屏保
热门文章
- Android自定义类似ProgressDialog效果的Dialog
- 网管系统开发经验谈(二)
- 使用XPO过程中的代码优化
- 未来计算机作文700字,未来的科技作文700字
- delphi接口带上请求头是什么意思_python接口自动化(二十)--token登录(详解)...
- jpushinterface.setalias的几个参数都是啥意思_很多电工老师傅都不知道,低压断路器基本参数,你懂几个?...
- linux 线程编译指令i,linux线程篇之(一):线程的创建与应用
- chrome vue.js插件文档_前端开发者必备的40个VSCode插件!
- java 字符串加密解密_Java加密解密字符串
- 北京工商大学c语言复试试题,2016年北京工商大学计算机与信息工程学院C语言程序设计复试笔试仿真模拟题...