文档章节

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灵感
粉丝 11
博文 2635
码字总数 83001
作品 0
程序员
私信 提问
Python学习之and-or使用技巧

版权声明:本文为博主原创文章,未经博主允许不得转载。 马哥私房菜的github地址 https://github.com/mageSFC/myblog https://blog.csdn.net/mmh19891113/article/details/82114882 本文主要...

马哥私房菜
2018/08/27
0
0
提升Python程序性能的7个习惯,这是你应该具备的

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

菜鸟学Python
2018/08/13
0
0
Python 3.1 alpha 1 发布

这是 Python 3.1 的第一个测试版,Python 3.1 兼容 Python 3.0 ,IO处理采用 C 语言重新实现,大大的提升了性能,其他还包含一些小改动以及修复了大量的bug,详情请看这里。 下载地址:http:...

红薯
2009/03/08
423
0
Kali安装OWTF、PIP、tornado

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

Cnlouds
2013/12/09
0
0
Fedora 14下配置Python开发环境

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

墙头草
2011/03/29
0
1

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(11.9)hive操作基础知识

上一篇博客分享了hive的简介和初体验,本节博主将继续分享一些hive的操作的基础知识。 DDL操作 (1)创建表 #建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name ...

em_aaron
今天
0
0
OSChina 周四乱弹 —— 我家猫真会后空翻

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听这个# 我艇牛逼,百听不厌,太好听辣 分享 Led Zeppelin 的歌曲《Stairway To Heaven》 《Stairway To Heaven》- Led Z...

小小编辑
今天
1
0
node调用dll

先安装python2.7 安装node-gyp cnpm install node-gyp -g 新建一个Electron-vue项目(案例用Electron-vue) vue init simulatedgreg/electron-vue my-project 安装electron-rebuild cnpm ins......

Chason-洪
今天
3
0
scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
3
0
通俗易懂解释网络工程中的技术,如STP,HSRP等

导读 在面试时,比如被问到HSRP的主备切换时间时多久,STP几个状态的停留时间,自己知道有这些东西,但在工作中不会经常用到,就老是记不住,觉得可能还是自己基础不够牢固,知识掌握不够全面...

问题终结者
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部