如何写出优雅的Python

Looping over a range of numbers

Bad:

for i in [0,1,2,3,4,5]:
    print i**2

Good:

for i in range(6):
    print i**2

Looping over a collection:

Bad:

colors = [ ‘red‘,‘green‘,‘blue‘,‘yellow‘]

for i in range(len(colors)):
    print colors[i]

Good:

for i in colors:
    print colors[i]

Looping backwards

Bad:

colors = [‘red‘,‘green‘,‘blue‘,‘yellow‘]

for i in range(len(colors)-1,-1,-1):
    print colors(i)

Good:

colors = [‘red‘,‘green‘,‘blue‘,‘yellow‘]

for color in reversed(colors):
    print color

Looping over a collection and indicies

Bad:

colors = [‘red‘,‘green‘,‘blue‘,‘yellow‘]

for i in range(len(colors)):
    print i, ‘-->‘, colors[i]

Good:

colors = [‘red‘,‘green‘,‘blue‘,‘yellow‘]

for i,color in enmerate(colors):
    print i, ‘-->‘, colors[i]

Looping over two collections

Bad:

names = [‘raymond‘,‘rachel‘,‘mattew‘]
colors = [‘red‘,‘green‘,‘blue‘,‘yellow‘]

n = min(len(names),len(colors))
for i in range(n):
    print names[i],‘-->‘,colors[i]

Good:

names = [‘raymond‘,‘rachel‘,‘mattew‘]
colors = [‘red‘,‘green‘,‘blue‘,‘yellow‘]

for name,color in zip(names,colors):
    print name,‘-->‘,color

Even beeter.(izip 依次处理,zip是全部读入后处理,如果在中间中断的话,izip不需要读入所有内容)

from itertools import izip
names = [‘raymond‘,‘rachel‘,‘mattew‘]
colors = [‘red‘,‘green‘,‘blue‘,‘yellow‘]

for name,color in izip(names,colors):
    print name,‘-->‘,color
时间: 2024-08-08 09:38:38

如何写出优雅的Python的相关文章

如何写出优雅的Python之设置class缺省值

今天有个需求时需要为某个类设置缺省值 最开始的代码如下: Class myClass def __init__(self,datalen=None,times=None): if datalen == None : self.datalen = 1024 else : self.datalen = datalen if times == None: slef.times = 1024*1024 else : self.times = times 但这也太不Python了,简单修改如下,是不是看起

如何写出优雅的Python(二)

Print sorted list: colors=['red','green','blue','yellow'] for color in sorted(colors): print color for color in sorted(colors,reverse=True): print color Customer sort order: Bad: colors=['red','green','blue','yellow'] def compare_length(c1,c2): if le

如何写出优雅的CSS代码 ?(转)

对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来清晰易懂,代码具有可拓展性,这样的代码有利于团队合作和后期的维护:而有的混乱,虽然表达出了最终的效果,然而却晦涩难懂,显然团队成员在读这样的代码时就显得无从下手,更不利于后期的维护了.那么如何写出优雅的代码呢?下面我将以一个很小的项目就以下几个方面简单的表达一下自己的看法,如有不妥,望批评指正. 如何整理一个项目. 如何写出清晰易懂的HTML代码. 如何写出优雅的css代

【知识点】如何写出优雅的CSS代码 ?

对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来清晰易懂,代码具有可拓展性,这样的代码有利于团队合作和后期的维护:而有的混乱,虽然表达出了最终的效果,然而却晦涩难懂,显然团队成员在读这样的代码时就显得无从下手,更不利于后期的维护了.那么如何写出优雅的代码呢?下面我将以一个很小的项目就以下几个方面简单的表达一下自己的看法,如有不妥,望批评指正. 如何整理一个项目. 如何写出清晰易懂的HTML代码. 如何写出优雅的css代

如何写出优雅的css代码?

如何写出优雅的css代码? 对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来井井有条,清晰易懂,这样的代码有利于团队合作和后期的维护:而有的混乱,虽然表达出了最终的效果,然而却晦涩难懂,显然团队成员在读这样的代码时就显得无从下手,更不利于后期的维护了.那么如何写出优雅的代码呢?下面我将以一个很小的项目就以下几个方面简单的表达一下自己的看法,如有不妥,望批评指正. 如何整理一个项目. 如何写出清晰易懂的HTML代码. 如

【原创】怎样才能写出优雅的 Java 代码?这篇文章告诉你答案!

本文已经收录自 JavaGuide (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. 本文比较简短,基本就是推荐一些对于写好代码非常有用的文章或者资源.讲真的,下面推荐的文章或者资源强烈建议阅读 3 遍以上. 团队 阿里巴巴Java开发手册(详尽版) https://github.com/alibaba/p3c/blob/master/阿里巴巴Java开发手册(华山版).pdf Google Java编程风格指南: http://hawste

代码这样写更优雅(Python 版)(转载)

转载:https://mp.weixin.qq.com/s?timestamp=1498528588&src=3&ver=1&signature=DfFeOFPXy44ObCMO3yMBLLgt5iFzbFAuShvog4m*JYf1w-gLIDZd7VoPWJN5f36DbVcaBJi33DkfXw6i-h*F7hVyz-wkID*CWQApnqKNCZU-D1o0fNl7h5DnB0HabcBOJV0c7i0*vmiKEZhGAFowkbtf*lioV3DQxtjLDFQI-L

将基因组数据分类并写出文件,python,awk,R data.table速度PK

由于基因组数据过大,想进一步用R语言处理担心系统内存不够,因此想着将文件按染色体拆分,发现python,awk,R 语言都能够非常简单快捷的实现,那么速度是否有差距呢,因此在跑几个50G的大文件之前,先用了244MB的数据对各个脚本进行测试,并且将其速度进行对比. 首先是awk处理,awk进行的是逐行处理,具有自己的语法,具有很大的灵活性,一行代码解决,用时24S, 1 #!/usr/bin/sh 2 function main() 3 { 4 start_tm=date 5 start_h=`

如何写出优雅兼备可读性的javascript代码

即或是最简单的需求,不同的程序员也会写出不一样的代码: 需求:充值程序过虑不符合条件的充值金额,即只能充入100.200.500.1000金额,其它过虑: 1.菜鸟程序员可能会这样写,虽然可读性强,代码啰嗦,不够优雅. $(function () { var recharge = 100; if (100 == recharge || 200 == recharge || 500 == recharge || recharge == 1000) { //to do some thing! } }