字典的操作--cookbook读书笔记
来源:互联网 发布:php日志系统设计 编辑:程序博客网 时间:2024/05/25 05:38
prices = {'ACME': 45.23,'AAPL': 612.78,'IBM': 205.55,'HPQ': 37.20,'FB': 10.75}
1. 字典排序
为了能控制一个字典中元素的顺序, 你可以使用collections 模块中的OrderedDict 类,在迭代操作的时候它会保持元素被插入时的顺序。可以使用zip() 和sorted() 函数来排列字典数据。
prices_sorted = sorted(zip(prices.values(), prices.keys()))# prices_sorted is [(10.75, 'FB'), (37.2, 'HPQ'),# (45.23, 'ACME'), (205.55, 'IBM'),# (612.78, 'AAPL')]
2. 字典的运算
为了对字典值执行计算操作,通常需要使用zip() 函数先将键和值反转过来。
min_price = min(zip(prices.values(), prices.keys()))# min_price is (10.75, 'FB')max_price = max(zip(prices.values(), prices.keys()))# max_price is (612.78, 'AAPL')
3. 查找两字典的相同点
为了寻找两个字典的相同点,可以简单的在两字典的keys() 或者items() 方法返回结果上执行集合操作。
a = {'x' : 1,'y' : 2,'z' : 3}b = {'w' : 10,'x' : 11,'y' : 2}Find keys in commona.keys() & b.keys() # { 'x', 'y' }# Find keys in a that are not in ba.keys() - b.keys() # { 'z' }# Find (key,value) pairs in commona.items() & b.items() # { ('y', 2) }
4. 从字典中提取子集,最简单的方式是使用字典推导。
prices = {'ACME': 45.23,'AAPL': 612.78,'IBM': 205.55,'HPQ': 37.20,'FB': 10.75}#Make a dictionary of all prices over 200p1 = {key: value for key, value in prices.items() if value > 200}# Make a dictionary of tech stockstech_names = {'AAPL', 'IBM', 'HPQ', 'MSFT'}p2 = {key: value for key, value in prices.items() if key in tech_names}
5. 合并多个字典,使用collections 模块中的ChainMap 类。
一个ChainMap 接受多个字典并将它们在逻辑上变为一个字典。然后,这些字典并不是真的合并在一起了, ChainMap 类只是在内部创建了一个容纳这些字典的列表并重新定义了一些常见的字典操作来遍历这个列表。如果出现重复键,那么第一次出现的映射值会被返回。
a = {'x': 1, 'z': 3 }b = {'y': 2, 'z': 4 }from collections import ChainMapc = ChainMap(a,b)print(c['x']) # Outputs 1 (from a)print(c['y']) # Outputs 2 (from b)print(c['z']) # Outputs 3 (from a)
阅读全文
0 0
- 字典的操作--cookbook读书笔记
- 特殊的字典----cookbook读书笔记
- 序列的操作--cookbook读书笔记
- 文件目录操作--cookbook读书笔记
- 字符串的匹配--cookbook读书笔记
- 字符串的其它注意事项--cookbook读书笔记
- 【读书笔记】scikit-learn Cookbook
- python cookbook读书笔记二
- python cookbook读书笔记
- 处理数字--cookbook读书笔记
- 处理日期--cookbook读书笔记
- 迭代器探索--cookbook读书笔记
- 函数探索--cookbook读书笔记
- ORDER BY子句的妙用(SQL Cookbook 读书笔记)
- Python的字典操作
- Python的字典操作
- 字典的操作
- python的{}字典操作
- LIstView多条目展示+XListView下拉刷新,上拉加载
- Python基础教程第十章学习笔记——充电时刻
- 多线程 之 setPriority
- Java总结一:初窥线程
- 使用selectivesearch工具进行目标检测
- 字典的操作--cookbook读书笔记
- STM32CUbeMX 使用
- 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
- C# 文件操作--代码演示
- CMOS版图分析(大量插图)
- Java面试题
- RISC和CISC区别
- hdu2476(区间dp)
- 【状压DP】LOJ#6177. 「美团 CodeM 初赛 Round B」送外卖2