《Python Cookbook 3rd》笔记(1.17):从字典中提取子集
从字典中提取子集
问题
你想构造一个字典,它是另外一个字典的子集。
解法
最简单的方式是使用字典推导。比如:
prices = {'ACME': 45.23,'AAPL': 612.78,'IBM': 205.55,'HPQ': 37.20,'FB': 10.75
}# Make a dictionary of all prices over 200
p1 = {key: value for key, value in prices.items() if value > 200}
# Make a dictionary of tech stocks
tech_names = {'AAPL', 'IBM', 'HPQ', 'MSFT'}
p2 = {key: value for key, value in prices.items() if key in tech_names}
讨论
大多数情况下字典推导能做到的,通过创建一个元组序列然后把它传给 dict() 函
数也能实现。比如:
p1 = dict((key, value) for key, value in prices.items() if value > 200)
但是,字典推导方式表意更清晰,并且实际上也会运行的更快些 (在这个例子中,实际测试几乎比 dcit() 函数方式快整整一倍)。
有时候完成同一件事会有多种方式。比如,第二个例子程序也可以像这样重写:
# Make a dictionary of tech stocks
tech_names = { 'AAPL', 'IBM', 'HPQ', 'MSFT' }
p2 = { key:prices[key] for key in prices.keys() & tech_names }
但是,运行时间测试结果显示这种方案大概比第一种方案慢 1.6 倍。如果对程序运行性能要求比较高的话,需要花点时间去做计时测试。
《Python Cookbook 3rd》笔记(1.17):从字典中提取子集相关推荐
- Python: 从字典中提取子集--字典推导
问题: 构造一个字典,它是另外一个字典的子集 answer: 最简单的方式是使用字典推导 eg1: 1. >>>prices = {'ACME': 45.23, 'AAPL': 61 ...
- 《Python Cookbook 3rd》笔记汇总
文章目录 一.数据结构 二.字符串和文本 三.数字.日期和时间 四.迭代器与生成器 五.文件与IO 一.数据结构 标题 关键词 1.1:拆分序列后赋值给多个变量 可迭代对象.拆分赋值 1.2:拆分任意 ...
- 《Python cookbook》笔记一
<Python cookbook> 第一章 数据结构和算法 - *号解压多个变量 - 如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 ValueError .那么 怎样才能从这个可 ...
- 《Python Cookbook 3rd》笔记(1.4):查找最大或最小的N个元素
<Python Cookbook 3rd>1.4:查找最大或最小的N个元素 问题 怎样从一个集合中获得最大或者最小的N个元素列表? 解法 heapq 模块有两个函数:nlargest()和 ...
- Python Cookbook 3rd Edition Documentation
Python Cookbook 3rd Edition Documentation 文章目录 第一章:数据结构和算法 1.1 解压序列赋值给多个变量 问题 解决方案 讨论 1.2 解压可迭代对象赋值给 ...
- Machine Learning with Python Cookbook 学习笔记 第6章
Chapter 6. Handling Text 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放在代码压缩 ...
- 《Python cookbook》笔记二
<Python cookbook>笔记二 第二章 字符串和文本 -使用多个界定符分割字符串- 你需要将一个字符串分割为多个字段,但是分隔符 (还有周围的空格) 并不是固定 的. # str ...
- Machine Learning with Python Cookbook 学习笔记 第8章
Chapter 8. Handling Images 前言 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放 ...
- Machine Learning with Python Cookbook 学习笔记 第9章
Chapter 9. Dimensionality Reduction Using Feature Extraction 前言 本笔记是针对人工智能典型算法的课程中Machine Learning w ...
最新文章
- 服务器上安装运行fastqc
- 【本人秃顶程序员】synchronized锁住的是代码还是对象
- python的中文含义-python中的 * 和 ** 作用含义
- MySQL内部执行流程
- 关于爬虫的日常复习(8)—— 实战:request+正则爬取猫眼榜单top100
- pythonclass全局变量_python怎么使用全局变量
- 软件驱动安装在docker_别为Docker本地实现不支持GPU发愁,解决方案在此!
- I/O多路转接之poll,epoll
- 雷林鹏分享:使用Yaf Codes Generator工具构建YAF测试环境
- Tomcat6.0连接器源码分析3
- 网易云音乐广告CTR预估模型演进过程
- 毕业设计写作基本步骤
- office 2010图标出现异常时的解决办法
- C语言多多搬果子思路,看图写话《小刺猬搬果子》
- 计算机组成原理 / 反汇编实验(2)拆弹实验
- 媒体播控系统、信息发布系统 使用说明
- Pocket英语语法---六、感官动词接不同的动词表示什么意思
- 引发的异常: 0xC0000005: 读取位置 0x0000000000000008 时发生访问冲突
- 员工离职2个月,前领导要求他回去改代码,员工:收费5千一次
- 解决/proc/sys/kernel/yama/ptrace_scope to 0的问题
热门文章
- Wince6 Eboot中加入开机画面
- VxWorks动态加载.out文件
- 链表怎么输出最后一个元素无空格_剑指offer系列----从尾到头打印链表
- c#sql防注入模糊查询_SQL中利用LIKE实现模糊查询的功能
- Java学习笔记—生产者和消费者模式
- Linux部署动态网页,linux构建动态WEB服务器安装篇
- 将 Fortinet 连接到
- python time 时间戳_Python的time.time()返回本地或UTC时间戳吗?
- 设计模式(六)J2EE 模式
- 【Python CheckiO 题解】Flatten a List