Python中defaultdict與lambda表達式用法實例小結
本文實例講述了Python中defaultdict與lambda表達式用法。分享給大家供大家參考,具體如下:
從教程中看到defaultdict是一個類,在一臺裝有Python2.7.6的電腦上使用發(fā)現不存在。在文檔中搜索了一下也沒有找到,想當然以為這或許是Python 3.X專有的。因為教程就是基于Python 3.X實現的。后來換了一臺裝有Python 3.X的電腦依然出問題。
求助于網絡,發(fā)現這個類其實是collections模塊中的一個類??磥恚瑢W習很難擺脫網絡環(huán)境??!
這個類是dict的一個子類,重寫了一個方法并增加了一個事件變量。在實例化的時候,第一個參數提供給default_factory的初始化函數。這個參數可以是一個類型或者函數,至于是類型這不難理解,其實類型基本上都是工廠函數。但是,有時候我們想用此方法傳入一個常量,這個時候就需要自己單獨設計一個常量函數或者直接使用lambda表達式。
先看如下的示范:
>>> fromcollections import defaultdict >>> c1 =defaultdict(int) >>>c1.get(123) >>>c1.get('abc') >>> defConst(): return 23 >>> c2 =defaultdict(Const) >>>c2.get(123) >>> c2 defaultdict(<functionConst at 0x000001D7E26F58C8>, {}) >>>c2[123] 23 >>>c2['abc'] 23 >>>c1[123] 0
從上面可以看出,這種方式可以為一個字典對象不存在的key自動給出一個默認的value。用上面的這種方式自然是可以實現value為某個常量,但是使用lambda可以使得代碼更為簡潔:
>>> c3 =defaultdict(lambda :123) >>>c3[12] 123
在最近遇到的使用場景中,這種方法能夠讓代碼變得簡潔不少,而習慣后的代碼可讀性也沒有任何影響。
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python列表(list)操作技巧總結》、《Python數組操作技巧總結》、《Python字符串操作技巧匯總》、《Python函數使用技巧總結》、《Python入門與進階經典教程》及《Python數據結構與算法教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python selenium的安裝和下載谷歌瀏覽器鏡像驅動
Selenium是一個用于web自動化測試的框架,在使用Ajax請求數據的頁面中,會出現 sign ,token等密鑰,借助使用Selenium框架來實現數據爬取很不錯,本文給大家介紹Python selenium的安裝和下載谷歌瀏覽器鏡像驅動,需要的朋友可以參考下2022-11-11pygame面向對象的飛行小鳥實現(Flappy bird)
這篇文章主要介紹了pygame面向對象的飛行小鳥實現(Flappy bird),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04