文档章节

Python中的一些小技巧

AllenOR灵感
 AllenOR灵感
发布于 2017/09/10 01:27
字数 340
阅读 1
收藏 0

给dict设置默认值


给所有的key的默认值设置为[],包括新添加的key

from collections import defaultdict
dic = defaultdict(list)

setdefault一次只能设置一个值,但好处是能使用链式语法,但是defaultdict更加快一点。

dic = {}
dic.setdefault("name_list", []).append('Tom')

使用fromkeys,用法 dict.fromkeys(seq[, value]),value默认是国际惯例的 None。

name_list = ['Tom', 'John']
dic = {}.fromkeys(name_list, 3)
# {'Tom': 3, 'John': 3}

dic = dict.fromkeys([1,2], True)
# {1: True, 2: True}

列表去重的快速方法

这种去重方法比用set更快。

mylist = [1,2,3,4,3,2,1,2,3,2,4]
list = {}.fromkeys(mylist).keys()
# list = [1,2,3,4]

列表深复制

a = [1,2,3]
b = a[:]

使用map作iterator

当将function设置为None时,可起到iterator的作用,结果类似于使用了zip,唯一不同的是map可以按照最长的列表扩展。

map(None, xrange(3), xrange(10, 12))
# [(0, 10), (1, 11), (2, None)]

zip(xrange(3), xrange(10, 12))
# [(0, 10), (1, 11)]

dict 删除 key

如果要删除的key数量较多(超过一半)的话,建议重新生成dict;如果数量较少,在pop和del都可以的情况下,建议使用del,这个比较快一点。


做循环的时候,尽量使用xrange()函数

xrange与range的用法完全相同,但是 range() 返回的是一个列表,而xrange() 返回的是一个生成器。在返回很大的值的时候,使用xrange的性能比较好。


本文转载自:http://www.jianshu.com/p/ff46fe9a4a5f

共有 人打赏支持
AllenOR灵感
粉丝 10
博文 2634
码字总数 82983
作品 0
程序员
Fedora 14下配置Python开发环境

pythone新闻1则 Python十分适合解决很多简单的、有趣的问题,比用C语言要省力的多。(这是实话,几行Python代码你就能制作一个简单的拼写检查程 序。)你会发现这种语言里几乎没有任何复杂或让...

墙头草
2011/03/29
0
1
Kali安装OWTF、PIP、tornado

由于在安装OWASP OWTF的过程中出现了一些小Bug,如下: 后来在官方GitHub上查了下需要安装tornado,推荐的是使用PIP进行安装(当然apt安装也可以),在Kali中直接执行pip install tornado的时...

Cnlouds
2013/12/09
0
0
提升Python程序性能的7个习惯,这是你应该具备的

  Python在性能方面不卓越,但是使用一些小技巧,可以提高Python程序的性能,避免不必要的资源浪费。      1. 使用局部变量   尽可能使用局部变量替代全局变量,可以是程序易于维护并...

菜鸟学Python
08/13
0
0
Supporting Python 3——不使用2to3转换支持Python 2和Python 3

不使用2to3转换支持Python 2和Python 3 虽然Python 3的官方文档努阴人们写同时支持Python 2和Python 3的代码,但是在一此情况这是合适的。尤其是你不能放弃支持Python 2.5及更早的版本时,因...

在湖闻樟
2015/10/28
0
0
你是如何自学 Python 的?

作为一名Python爱好者,我也想跟大家分享分享我自学Python的一些小经验。搬来你的小板凳,听听看吧。也许,你会很有收获,也许你也走上了自学Python的不归路。开讲啦~ 首先,你要有自信心,要...

p柯西
06/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Minifilter的动态安装、加载及卸载

MINIFILTER框架的文件系统过滤驱动,无法使用的CreateService和OpenService进行动态加载。 看了一下,使用Inf文件安装Minifilter驱动的方式是在注册表驱动服务项下比传统驱动多创建了Instanc...

simpower
27分钟前
3
0
idea新建springCloud项目(6)- Config Server使用

1.在IDEA新建springCloud项目-Config Server 修改版本,和之前建的eureka项目版本一致,修改完记得刷新: 删除掉不需要的文件: 2.把Config S 服务注册到eureka上去,配置git地址,启动项目 ...

monroeCode
33分钟前
4
0
大数据可视化项目开发总纲

第1章 开发文档总纲 1.1 开发工具清单 名称 版本 备注 Pentaho-bi server pentaho-server-ce-7.1 Pentaho Cde为其内置工具 Pentaho-prd pentaho-prd-ce-7.1 Pentaho Report Designer报表工具...

ZhangLG
33分钟前
4
0
pip安装超时问题

pip3 install --default-timeout=100 tensorflow 设置为100秒 参考: User Guide How to solve ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443) with pip?......

亚林瓜子
35分钟前
2
0
fragment 旋转时保持当前实例

设备旋转时保存Fragment的交互状态: setRetainInstance(true);

zdglf
37分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部