Python 的哪些特性或用法让你相见恨晚?
程序员文章站
2022-05-18 19:05:58
...
RT。最好附上实例或伪代码,方便大家交流哈!
来自Quora的相同问题:Python (programming language): What are the Python features you wish you'd known earlier?
来自Quora的相同问题:Python (programming language): What are the Python features you wish you'd known earlier?
回复内容:
Hidden features of Python比较符连写:
>>> x = 5 >>> 1 x 10 True >>> 10 > x 9 True
- 测试程序执行的时间
x,y=y,x dir()import time class Timer: def __enter__(self): self.start = time.clock() return self def __exit__(self,*args): self.end = time.clock() self.interval = self.end-self.start with Timer() as t: dosomesuch() print t.interval
还有列表解析式 [i*2 for i in range(100)] 让我们大喊三声:
递归+yield 真好用啊
递归+yield 真好用啊
递归+yield 真好用啊
这绝对是解决一些难题的专用利器.我用它来实现自定义的文件夹遍历函数..对比os.walk函数,我可以在遍历时进行任何操作,灵活许多.
我用它实现了嵌套字典的漂亮输出,在未理解递归之前,我不敢想象自己能解决这种问题.上例子:比较喜欢map ,reduce,filter省去了很多废话有没有,还有list comprehension。。。def superPrint(inidic={},indent=chr(32)): length=len(inidic) for i,d in enumerate(inidic.items()): #if the k or v is string object,add ' to both sides k,v=["'%s'"%x if isinstance(x,(str,unicode)) else x for x in d] #if the v is dict object,recurse across v and return a string if isinstance(v,dict): v=''.join(superPrint(v,indent+chr(32)*(len(str(k))+3))) if length==1: yield "{%s: %s}"%(k,v) elif i==0: yield "{%s: %s,\n"%(k,v) elif i==length-1: yield "%s%s: %s}"%(indent,k,v) else: yield "%s%s: %s,\n"%(indent,k,v)
还有高阶函数,闭包。。
另外么,getattr ,hasattr函数吧。。。
with as 结构
in关键字 也很省事。。
其实这些特性别的语言也有,但是第一次见是在python中。。 python 的元组 、序列 、字典 数据结构及其容易操作,切片很实用。
还有Python有很多友好方便的语法糖。相关文章
相关视频
专题推荐
- 独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
- 玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
- 天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论