Python 的哪些特性或用法讓你相見恨晚?

來源:互聯網
上載者:User
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
  1. 測試程式執行的時間
    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)
    果斷是縮排。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.