文档章节

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
程序员
Python学习之and-or使用技巧

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

马哥私房菜
08/27
0
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
精选26个Python实用技巧,想秀技能先Get这份技术列表!

作者 | Peter Gleeson 译者 | 婉清 编辑 | Jane 出品 | AI科技大本营 【导读】Python 虽然是脚本语言,但是因为其易学,迅速成为科学家的工具,从而积累了大量的工具库、架构,人工智能涉及大...

AI科技大本营
09/09
0
0
9月推荐 | 从近1000篇Python文章中精选Top10

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/82719410 作者 | MyBridge 译者 |王天宇 编辑 | Jane 出品 | AI科技大本营...

AI科技大本营
09/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 到底谁是小公猫……

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:分享Trivium的单曲《Throes Of Perdition》 《Throes Of Perdition》- Trivium 手机党少年们想听歌,请使劲儿戳(这里) @小鱼丁:...

小小编辑
21分钟前
13
1
基础选择器

注意:本教程参考自网上流传的李兴华老师的jquery开发框架视频,但是苦于没有相应的配套笔记,由我本人做了相应的整理. 本次学习的内容 学习jquery提供的各种选择器的使用,掌握了jquery选择...

江戸川
27分钟前
0
0
Spring中static变量不能@value注入的原因

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。 类似于这样写的。 public class RedisShardedPool { private static ShardedJedisPool pool...

钟然千落
今天
2
0
CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部