Python中defaultdict與lambda表達式用法

不言
發布: 2018-04-09 14:50:23
原創
3066 人瀏覽過

這篇文章主要介紹了Python中defaultdict與lambda表達式用法,在這裡分享給大家,需要的朋友可以參考下

本文實例講述了Python中defaultdict與lambda表達式用法。分享給大家供大家參考,具體如下:

從教程中看到defaultdict是一個類,在一台裝有Python2.7.6的電腦上使用發現不存在。在文件中搜尋了一下也沒找到,想當然以為這或許是Python 3.X專有的。因為教程就是基於Python 3.X實現的。後來換了一台裝有Python 3.X的電腦還是出問題。

求助於網絡,發現這個類別其實是collections模組中的一個類別。看來,學習很難擺脫網路環境啊!

這個類別是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[&#39;abc&#39;]
23
>>>c1[123]
0
登入後複製

從上面可以看出,這種方式可以為一個字典物件不存在的key自動給出一個預設的value。用上面的這種方式自然是可以實現value為某個常數,但是使用lambda可以使得程式碼更為簡潔:

>>> c3 =defaultdict(lambda :123)
>>>c3[12]
123
登入後複製

在最近遇到的使用場景中,這種方法能讓程式碼變得簡潔不少,而習慣後的程式碼可讀性也沒有任何影響。

相關推薦:

Python中的defaultdict模組和namedtuple模組的簡單入門指南


以上是Python中defaultdict與lambda表達式用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板