Python: 从字典中提取子集--字典推导
问题: 构造一个字典,它是另外一个字典的子集
answer: 最简单的方式是使用字典推导
eg1:
1.
>>>prices = {'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20, 'FB': 10.75}
>>>p1 = {key: value for key, value in prices.items() if value > 200}
>>>p1
{'AAPL': 612.78,'IBM': 205.55}
2.
字典推导能做到的,通过创建一个元组序列然后把它传给dict() 函数也能实现。比如:
>>>p1 = dict((key, value) for key, value in prices.items() if value > 200)
但是,字典推导方式表意更清晰,并且实际上也会运行的更快些(在这个例子中,实际测试几乎比dcit() 函数方式快整整一倍)。
eg2:
1.
>>>tech_names = {'AAPL', 'IBM', 'HPQ', 'MSFT'}
>>>p2 = {key: value for key, value in prices.items() if key in tech_names}
{'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20}
2.
>>>tech_names = {'AAPL', 'IBM', 'HPQ', 'MSFT'}
>>>p2 = { key:prices[key] for key in prices.keys() & tech_names }
但是,运行时间测试结果显示这种方案大概比第一种方案慢1.6 倍。如果对程序运行性能要求比较高的话,需要花点时间去做计时测试。
Python: 从字典中提取子集--字典推导的更多相关文章
- 【python cookbook】【数据结构与算法】17.从字典中提取子集
问题:想创建一个字典,其本身是另一个字典的子集 解决方案:利用字典推导式(dictionary comprehension)可轻松解决 # example of extracting a subset ...
- Python笔记7----Pandas中变长字典Series
1.Series概念 类似一维数组的对象,由数据和索引组成 2.Series创建 用Series()函数创建,0,1,2为series结构自带的索引. 可以自己指定索引值,用index,也可以直接用字 ...
- python 从视频中提取图片,并保存在硬盘上
使用python的moviepy库来提取视频中的图片,按照视频每帧一个图片的方式来保存. extract images from video, than save them to disk from ...
- [译]使用BeautifulSoup和Python从网页中提取文本
如果您要花时间浏览网页,您可能遇到的一项任务就是从HTML中删除可见的文本内容. 如果您使用的是Python,我们可以使用BeautifulSoup来完成此任务. 设置提取 首先,我们需要获取一些HT ...
- python从文本中提取某酒店机顶盒号和智能卡号
1.某项目中经常遇到需要关闭一些机顶盒消费权限.但是给过来的不是纯字符串,需要自己提取. 有400多个机顶盒和智能卡.nodepad++的列块模式也可以提取,但是还是稍微麻烦,因为列不对等 先复制到文 ...
- python从字符串中提取指定的内容
有如下字符串: text=cssPath:"http://imgcache.qq.com/ptlogin/v4/style/32",sig:"OvL7F1OQEojtPk ...
- python从sqlite中提取数据到excel
import sqlite3 as sqlite from xlwt import * import sys def sqlite_get_col_names(cur, select_sql): cu ...
- python从Excel中提取邮箱
从各个城市的律师协会去爬取的律师的招聘信息,可是邮箱在招聘简介里面,所有需要写个脚本去提取邮箱 import pandas as pd import re regex = r"([-_a-z ...
- python 从url中提取域名和path
使用Python 内置的模块 urlparse from urlparse import * url = 'https://docs.google.com/spreadsheet/ccc?key=bl ...
随机推荐
- vs 的git插件
在vs2013上Tfs提供的git管理完全无法理解他的管理方式,还是 Git Source Control Provider 好用用. 下载地址: [http://gitscc.codeplex.co ...
- Win8安装msi程序出现2502、2503错误解决方法
在Win8中,在安装msi安装包的时候常常会出现代码为2502.2503的错误.其实这种错误是由于安装权限不足造成的,因为这种msi的安装包不像其他exe的安装程序, 在安装包上点击"右键& ...
- wpgcms---banner图怎么调用
使用wpgcms调用banner图,首先新建应用为 自定义应用,然后添加对应的字段信息,例如: 具体调用方式: <ul> {% set bannerlist = wpg.appdata.g ...
- python标准库和第三方库的区别
1.python的标准库是随着pyhon安装的时候默认自带的库. 2.python的第三方库,需要下载后安装到python的安装目录下,不同的第三方库安装及使用方法不同. 3.它们调用方式是一样的,都 ...
- python读取文件行号和内容的便捷方法
处理数据时候,需要得到数据所在和行号,使用enumerate时便捷的方法: file = open('file.txt','r') for (num,value) in enumerate(file) ...
- web前端开发笔记(2)
一.什么是作用域. 所有变量都存在于一个执行环境中(也称作用域),这个执行环境决定了变量的生命周期,以及哪一部分代码可以访问其中的变量.总结: 执行环境有全局执行环境和函数执行环境. 每次进入一个新执 ...
- UDR rsync
1. SOCK_DGRAM UDP packets SOCK_STREAM TCP 不同的协议下的 套接字 数据包 面向数据的 面向连接的 套接字 2. 数据 UDP 文件 TCP https: ...
- Visibility from other objects
php.net <?php class Test { private $foo; public function __construct($foo) { $this->foo=$foo; ...
- IO、NIO、AIO理解
摘要: 关于BIO和NIO的理解 最近大概看了ZooKeeper和Mina的源码发现都是用Java NIO实现的,所以有必要搞清楚什么是NIO.下面是我结合网络资料自己总结的,为了节约时间图示随便画的 ...
- 2018/03/14 每日一个Linux命令 之 ln
ln 链接命令 -- 类似Windows的快捷方式,实际等于建立了一个文件同步的链接,我想,MAC上面复制一个文件到另一个路径,特别快,它可能就是建立了一个链接. -- 在通俗点讲,就是你创建链接之后 ...