让你的python代码优雅地道的小技巧
转载地址:http://www.lightxue.com/transforming-code-into-beautiful-idiomatic-python
用了python这么久,逐渐才了解到python语言的独特之处,根据这篇文章,列出了几个以后写代码要注意的点,提醒自己。
本文是Raymond Hettinger在2013年美国PyCon演讲的笔记(python2.7)
这里只列出最好的几个方法,错误的例子不再举出
1.遍历一个范围的数字
for i in xrange(6):
print i
2.遍历集合
colors = [ '1',2','3']
for color in colors:
print color
3.反向遍历
for color in reserved(colors):
print color
4.遍历集合及其下标(字典也类似处理)
for i,color in enumerate(colors):
print i, color
5.遍历两个集合
for name,color in izip(names, colors):
print name, '----->', color
6.有序的遍历
for color in sorted(colors)
print color
7.自定义排序顺序
print sorted(colors, key=len) len可以用str.lower等代替
8.在循环内识别多个退出点
def find(seq, target):
for i, value in enumerate(seq):
if value == target:
break
else:
return -1
return 1
这里是把else当做nobreak,当for没有被break,循环结束会进入else
9.遍历字典的key
for key in dict:
print key
当你需要修改key的时候
for k in d.keys():
if k.startwith('r'):
del d[k]
10.遍历字典的key和value
for k, v in d.iteritems():
print k, '----->', v
11.key-value对构建字典
name = ['1', '2', '3']
color = ['red', 'blue', 'yellow']
d = dict(izip(names, colors))
12.字典分组
d = defaultdict(list)
for name in names:
key = len(name)
d[key].append(name)
# 这里是按照字段长度分组
13.连接字典
目前似乎2.7版本不支持chainmap函数


14.提高可读性
提高可读性的关键在于使代码和人类的思考方式一致
15.更新多个变量
x, y = y, x + y
x ,y , dx, dy = (, , , ,)
16.符号连接字符串
print ','.join(names)
17.更新序列

18.装饰器()
文件读写部分暂时跳过
with open('data.txt') as f
data = f.read()
可以取消文件读写关闭的过程
让你的python代码优雅地道的小技巧的更多相关文章
- 教你一招,提升你Python代码的可读性,小技巧
Python的初学者,开发者都应该知道的代码可读性提高技巧,本篇主要介绍了如下内容: PEP 8是什么以及它存在的原因 为什么你应该编写符合PEP 8标准的代码 如何编写符合PEP 8的代码 为什么我 ...
- 漫谈程序员(十一)老鸟程序员知道而新手不知道的小技巧之Web 前端篇
老鸟程序员知道而新手不知道的小技巧 Web 前端篇 常充电!程序员只有一种死法:土死的. 函数不要超过50行. 不要一次性写太多来不及测的代码,而是要写一段调试一段. UI和编码要同步做. 多写注释方 ...
- How Javascript works (Javascript工作原理) (二) 引擎,运行时,如何在 V8 引擎中书写最优代码的 5 条小技巧
个人总结: 一个Javascript引擎由一个标准解释程序,或者即时编译器来实现. 解释器(Interpreter): 解释一行,执行一行. 编译器(Compiler): 全部编译成机器码,统一执行. ...
- Python代码块缓存、小数据池
引子 前几天遇到了这样一道Python题目:a='123',b='123',下列哪个是正确的? A. a != b B. a is b C. a==123 D. a + b =246 正确答案是B 是 ...
- 小白突破百度翻译反爬机制,33行Python代码实现汉译英小工具!
表弟17岁就没读书了,在我家呆了差不多一年吧. 呆的前几个月,每天上网打游戏,我又不好怎么在言语上管教他,就琢磨着看他要不要跟我学习Python编程.他开始问我Python编程什么?我打开了我给学生上 ...
- Python爬虫简单入门及小技巧
刚刚申请博客,内心激动万分.于是为了扩充一下分类,随便一个随笔,也为了怕忘记新学的东西由于博主十分怠惰,所以本文并不包含安装python(以及各种模块)和python语法. 目标 前几天上B站时看到一 ...
- 10个Python 初学者必知编码小技巧
技巧 #1 字符串翻转 >>> a = "codementor" >>> print "Reverse is" ...
- 今天整理了几个在使用python进行数据分析的常用小技巧、命令。
提高Python数据分析速度的八个小技巧 01 使用Pandas Profiling预览数据 这个神器我们在之前的文章中就详细讲过,使用Pandas Profiling可以在进行数据分析之前对数据进行 ...
- 10 个 Python 初学者必知编码小技巧
技巧 #1 字符串翻转 a = "codementor">>> print "Reverse is",a[::-1]翻转后的结果为 rotne ...
随机推荐
- selenium+java+testNG+maven环境搭建
一.简单介绍 1.selenium: Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Fir ...
- ros 配置udev
显示已经链接设备 lsusb 显示挂载点 ls /dev/ttyACM* /dev/ttyUSB* 可以看到 ttyUSB0 和 ttyUSB1 对应哪一个设备不确定,因此,我们就需要一种方法来保证每 ...
- 在Visual C++ 6.0中为代码添加行号
由如上代码可知Visual C++ 6.0是没有行号的(新手代码不要在意,重点是没有行号),在编译报错的时候会发现其会指出在第几行错了,如果没有代码行号将很难找到它 为解决这个问题可以安装插件给Vis ...
- 【Trie】The XOR-longest Path
[题目链接]: https://loj.ac/problem/10056 [题意] 请输出树上两个点的异或路径 的最大值. [题解] 这个题目,y总说过怎么做之后,简直就是醍醐灌顶了. 我们知道Xo ...
- Memcached和Spring集成开发
xml配置文件 <bean id="memcachedPool" class="com.danga.MemCached.SockIOPool" facto ...
- git、git bash、git shell
git 一个快速的分布式版本控制系统(工具),支持该工具的网站有Github等. shell 是linux.unix系统的外壳(区别于核),用于输入并执行命令(命令解析器). 它类似于DOS下的com ...
- According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by de
MySQL在高版本需要指明是否进行SSL连接 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding ...
- javascript——获取元素方式
//1:依据id //var element = document.getElementById("test"); console.log(element); //2:依据clas ...
- ScrumBasic开发记录
ScrumBasic 是基于asp.net core 1.0的开源敏捷管理软件.目前第一版.目前只有很基础的东西.希望我能将这个项目演变下去. 地址:https://github.com/CAH-Fl ...
- synchronized 底层实现原理
线程在获取锁的时候,其指针指向的是一个monitor对象(由C++实现)的起始地址.每个对象实例都会有一个 monitor.其中monitor可以与对象一起创建.销毁:亦或者当线程试图获取对象锁时自动 ...