没有合适的资源?快使用搜索试试~ 我知道了~
Python进阶篇之字典操作总结
0 下载量 157 浏览量
2020-12-24
19:20:03
上传
评论
收藏 76KB PDF 举报
温馨提示
一、与字典值有关的计算 问题 想对字典的值进行相关计算,例如找出字典里对应值最大(最小)的项。 解决方案一: 假设要从字典 {‘a’:3, ‘b’:2, ‘c’:6} 中找出值最小的项,可以这样做: >>> d = {'a':3, 'b':2, 'c':6} >>> min(zip(d.values(), d.keys())) (2, 'b') 值得注意的是 d.values() 获取字典的全部值,d.keys() 获取字典的全部键,而且两个序列的顺序依然保持一一对应的关系。因此 zip(d.values() , d.keys()) 实质上生成的是一个 (value, key) 的序
资源推荐
资源详情
资源评论
Python进阶篇之字典操作总结进阶篇之字典操作总结
一、与字典值有关的计算一、与字典值有关的计算
问题问题
想对字典的值进行相关计算,例如找出字典里对应值最大(最小)的项。
解决方案一:解决方案一:
假设要从字典 {‘a’:3, ‘b’:2, ‘c’:6} 中找出值最小的项,可以这样做:
>>> d = {'a':3, 'b':2, 'c':6}
>>> min(zip(d.values(), d.keys()))
(2, 'b')
值得注意的是 d.values() 获取字典的全部值,d.keys() 获取字典的全部键,而且两个序列的顺序依然保持一一对应的关系。因
此 zip(d.values() , d.keys()) 实质上生成的是一个 (value, key) 的序列。min 函数通过比较序列中的元组 (value, key) 找出其最小
值。
解决方案二:解决方案二:
除了使用 zip(d.values() , d.keys()) 外,还可以使用 dict.items() 方法和生成器推导式来生成 (value, key) 序列,从而传递给 min 函数
进行比较:
>>> d = {'a':3, 'b':2, 'c':6}
>>> min((v ,k) for (k, v) in d.items())
(2, 'b')
这里 min 函数的参数 (v ,k) for (k, v) in d.items() 其实是一个生成器推导式(和列表推导式一样,只是把列表推导式的 [] 改为 () ,
而且其返回的一个生成器而非列表),由于生成器推导式做为 min 函数的参数,所以可以省略掉两边的括号(不做为参数时
写法应该是 ((v ,k) for (k, v) in d.items()) ) 。
二、字典推导式二、字典推导式
问题问题
想把一个元组列表转换成一个字典,例如把 [('a', 1), ('b', 2), ('c', 3)] 转化为 {'a': 1, 'b': 2, 'c': 3}
解决方案解决方案
类似于列表推导式,字典推导式可以方便地从其他数据结构构造字典,例如:
>>> l = [('a', 1), ('b', 2), ('c', 3)] >>> {k: v for k, v in l}
{'c': 3, 'b': 2, 'a': 1}
字典推导式的规则和列表推导式一样,只是把 [] 换成 {}
三、寻找字典的交集三、寻找字典的交集
问题问题
假设有两个字典:
d1 = {'a':1, 'b':2, 'c':3, 'd':4}
d2 = {'b':2, 'c':3, 'd':3, 'e':5}
要找出这两个字典中具有公共键的项,即要得到结果 {‘b’:2, ‘c’:3}
解决方案解决方案
我们知道一般通过 d.items() 方法来遍历字典,d.items() 方法返回的对象是一个类集合对象,支持集合的基本运算,如取交集、
并集等。
>>> dict(d1.items() & d2.items()) # 取交集
{'b': 2, 'c': 3}
此外,d.keys() 返回字典的键,也是一个类集合对象,如果我们只想找出两个字典中键相同的项,可以这样:
资源评论
weixin_38607971
- 粉丝: 3
- 资源: 972
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功