RT。最好附上執行個體或虛擬碼,方便大家交流哈!
來自Quora的相同問題:Python (programming language): What are the Python features you wish you'd known earlier?
回複內容:
Hidden features of Python
比較符連寫:
>>> x = 5>>> 1 < x < 10True>>> 10 > x <= 9True
- 測試程式執行的時間
import timeclass Timer: def __enter__(self): self.start = time.clock() return self def __exit__(self,*args): self.end = time.clock() self.interval = self.end-self.startwith Timer() as t: dosomesuch()print t.interval
x,y=y,xdir()
還有列表解析式[i*2 for i in range(100)] 讓我們大喊三聲:
遞迴+yield 真好用啊
遞迴+yield 真好用啊
遞迴+yield 真好用啊
這絕對是解決一些難題的專用利器.我用它來實現自訂的檔案夾遍曆函數..對比os.walk函數,我可以在遍曆時進行任何操作,靈活許多.
我用它實現了嵌套字典的漂亮輸出,在未理解遞迴之前,我不敢想象自己能解決這種問題.上例子:
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)
比較喜歡map ,reduce,filter省去了很多廢話有沒有,還有list comprehension。。。
還有高階函數,閉包。。
另外麼,getattr ,hasattr函數吧。。。
with as 結構
in關鍵字 也很省事。。
其實這些特性別的語言也有,但是第一次見是在python中。。python 的元組 、序列 、字典 資料結構及其容易操作,切片很實用。
還有Python有很多友好方便的文法糖。
help(something)
果斷是縮排。。
-