python defaultdict函数_Python中defaultdict与lambda表达式用法
這篇文章主要介紹了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(, {})
>>>c2[123]
23
>>>c2['abc']
23
>>>c1[123]
0
從上面可以看出,這種方式可以為一個字典對象不存在的key自動給出一個默認的value。用上面的這種方式自然是可以實現value為某個常量,但是使用lambda可以使得代碼更為簡潔:
>>> c3 =defaultdict(lambda :123)
>>>c3[12]
123
在最近遇到的使用場景中,這種方法能夠讓代碼變得簡潔不少,而習慣后的代碼可讀性也沒有任何影響。
相關推薦:
Python中的defaultdict模塊和namedtuple模塊的簡單入門指南
總結
以上是生活随笔為你收集整理的python defaultdict函数_Python中defaultdict与lambda表达式用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java将数字替换为空_将数字替换为ja
- 下一篇: python stdout清空_pyth