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

Python標準庫defaultdict模塊使用示例

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

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

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

復制代碼 代碼如下:

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'的元素不存在,會有一個默認值 

輸出結果是這樣的:
復制代碼 代碼如下:

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

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

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

復制代碼 代碼如下:

dict_set1 = {} 
#如果不知道這個字段中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就是這樣的
復制代碼 代碼如下:

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

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

兩個使用的小案例

復制代碼 代碼如下:

ss = '1111222233334444' 
dict_int = coll.defaultdict(int) 
for s in ss: 
    dict_int[s] += 1 
print dict_int 
 
'''''
官方文檔的這個例子就能看到這種寫法的簡潔了
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])]
''' 

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

相關文章

  • 詳解python進行mp3格式判斷

    詳解python進行mp3格式判斷

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

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

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

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

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

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

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

    Numpy中對向量、矩陣的使用詳解

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

    python3爬取torrent種子鏈接實例

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

    python 連續(xù)不等式語法糖實例

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

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

    這篇文章主要介紹了使用Python和百度語音識別生成視頻字幕,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 學python需要去培訓機構嗎

    學python需要去培訓機構嗎

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

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

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

最新評論