欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python標(biāo)準(zhǔn)庫(kù)defaultdict模塊使用示例

 更新時(shí)間:2015年04月28日 09:08:57   投稿:junjie  
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)defaultdict模塊使用示例,本文講解了如何使用defaultdict給字典value元素添加默認(rèn)類型以及defaultdict的兩個(gè)使用小案例,需要的朋友可以參考下

Python標(biāo)準(zhǔn)庫(kù)中collections對(duì)集合類型的數(shù)據(jù)結(jié)構(gòu)進(jìn)行了很多拓展操作,這些操作在我們使用集合的時(shí)候會(huì)帶來很多的便利,多看看很有好處。
defaultdict是其中一個(gè)方法,就是給字典value元素添加默認(rèn)類型,之前看到過但是沒注意怎么使用,今天特地瞅了瞅。

首先是各大文章介紹的第一個(gè)例子:

復(fù)制代碼 代碼如下:

import collections as coll 
 
def default_factory(): 
    return 'default value' 
 
d = coll.defaultdict(default_factory, foo='bar') 
print 'd:',d 
print 'foo=>', d['foo'] 
print 'foo=>', d['bar']   #key為'bar'的元素不存在,會(huì)有一個(gè)默認(rèn)值 

輸出結(jié)果是這樣的:
復(fù)制代碼 代碼如下:

d: defaultdict(<function default_factory at 0x022E6E70>, {'foo': 'bar'}) 
foo=> bar 
foo=> default value 

結(jié)論:這里可以看到,當(dāng)我們?nèi)∽值渲幸粋€(gè)沒有的key的時(shí)候就會(huì)自動(dòng)根據(jù) default_factory生成一個(gè)value,類似于 d.get('bar','default value')

一個(gè)對(duì)比的例子:
如果一個(gè)字典中有個(gè)map的value是一個(gè)set,往這個(gè)set連續(xù)添加兩個(gè)元素,使用原始的dict是這樣的

復(fù)制代碼 代碼如下:

dict_set1 = {} 
#如果不知道這個(gè)字段中key有沒有,需要先判斷 
if 'key' not in dict_set1: 
    dict_set1['key'] = set() 
dict_set1['key'].add('111') 
dict_set1['key'].add('000') 
print dict_set1 

如果使用defaultdict就是這樣的
復(fù)制代碼 代碼如下:

dict_set = coll.defaultdict(set) 
dict_set['key'].add('000') 
dict_set['key'].add('111') 
print dict_set

好處就是不需要做set的初始化這個(gè)判斷了。

兩個(gè)使用的小案例

復(fù)制代碼 代碼如下:

ss = '1111222233334444' 
dict_int = coll.defaultdict(int) 
for s in ss: 
    dict_int[s] += 1 
print dict_int 
 
'''''
官方文檔的這個(gè)例子就能看到這種寫法的簡(jiǎn)潔了
https://docs.python.org/2/library/collections.html#collections.defaultdict
>>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
>>> d = defaultdict(list)
>>> for k, v in s:
...     d[k].append(v)
...
>>> d.items()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
''' 

當(dāng)我們做這種帶有統(tǒng)計(jì)性質(zhì)的數(shù)據(jù)操作時(shí)候,這個(gè)對(duì)象很好用。

相關(guān)文章

  • 詳解python進(jìn)行mp3格式判斷

    詳解python進(jìn)行mp3格式判斷

    這篇文章主要介紹了詳解python進(jìn)行mp3格式判斷,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2016-12-12
  • Python實(shí)現(xiàn)基于SVM的分類器的方法

    Python實(shí)現(xiàn)基于SVM的分類器的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)基于SVM的分類器的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python字符串切割:str.split()與re.split()的對(duì)比分析

    python字符串切割:str.split()與re.split()的對(duì)比分析

    今天小編就為大家分享一篇python字符串切割:str.split()與re.split()的對(duì)比分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python處理常見格式壓縮包文件的全指南

    python處理常見格式壓縮包文件的全指南

    這篇文章主要為大家詳細(xì)介紹了如何使用python處理常見格式壓縮包文件,例如7z壓縮包,tar和gz壓縮包,zip類壓縮包和.rar文件,有需要的小伙伴可以了解下
    2025-05-05
  • Numpy中對(duì)向量、矩陣的使用詳解

    Numpy中對(duì)向量、矩陣的使用詳解

    這篇文章主要介紹了Numpy中對(duì)向量、矩陣的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python3爬取torrent種子鏈接實(shí)例

    python3爬取torrent種子鏈接實(shí)例

    今天小編就為大家分享一篇python3爬取torrent種子鏈接實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python 連續(xù)不等式語(yǔ)法糖實(shí)例

    python 連續(xù)不等式語(yǔ)法糖實(shí)例

    這篇文章主要介紹了python 連續(xù)不等式語(yǔ)法糖實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 使用Python和百度語(yǔ)音識(shí)別生成視頻字幕的實(shí)現(xiàn)

    使用Python和百度語(yǔ)音識(shí)別生成視頻字幕的實(shí)現(xiàn)

    這篇文章主要介紹了使用Python和百度語(yǔ)音識(shí)別生成視頻字幕,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 學(xué)python需要去培訓(xùn)機(jī)構(gòu)嗎

    學(xué)python需要去培訓(xùn)機(jī)構(gòu)嗎

    在本篇文章里小編給大家整理的是關(guān)于學(xué)python是否需要去培訓(xùn)機(jī)構(gòu)的相關(guān)內(nèi)容,有需要的朋友們可以閱讀下。
    2020-07-07
  • Python里字典的基本用法(包括嵌套字典)

    Python里字典的基本用法(包括嵌套字典)

    今天小編就為大家分享一篇關(guān)于Python里字典的基本用法(包括嵌套字典),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02

最新評(píng)論