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

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

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

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

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

復(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'的元素不存在,會有一個默認(rèn)值 

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

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

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

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

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

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就是這樣的
復(fù)制代碼 代碼如下:

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

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

兩個使用的小案例

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

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])]
''' 

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

相關(guān)文章

  • python opencv人臉識別考勤系統(tǒng)的完整源碼

    python opencv人臉識別考勤系統(tǒng)的完整源碼

    這篇文章主要介紹了python opencv人臉識別考勤系統(tǒng)的完整源碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 解決pytorch下出現(xiàn)multi-target not supported at的一種可能原因

    解決pytorch下出現(xiàn)multi-target not supported at的一種可能原因

    這篇文章主要介紹了解決pytorch下出現(xiàn)multi-target not supported at的一種可能原因,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Python Json讀寫操作之JsonPath用法詳解

    Python Json讀寫操作之JsonPath用法詳解

    JSONPath是一種信息抽取類庫,是從JSON文檔中抽取指定信息的工具,提供多種語言實(shí)現(xiàn)版本,包括Javascript、Python、PHP和Java,這篇文章主要介紹了Python Json讀寫操作之JsonPath用法詳解,需要的朋友可以參考下
    2023-04-04
  • 使用Python進(jìn)行QQ批量登錄的實(shí)例代碼

    使用Python進(jìn)行QQ批量登錄的實(shí)例代碼

    這篇文章主要介紹了使用Python進(jìn)行QQ批量登錄的實(shí)例代碼,代碼簡單易懂非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • 基于Python制作IP查詢網(wǎng)站

    基于Python制作IP查詢網(wǎng)站

    這篇文章主要為大家詳細(xì)介紹了如何使用python快速做一個簡易查內(nèi)網(wǎng)IP網(wǎng)站,通過電腦訪問網(wǎng)站就知道自己的IP地址,感興趣的小伙伴可以了解下
    2024-10-10
  • 解讀pandas.DataFrame.corrwith

    解讀pandas.DataFrame.corrwith

    這篇文章主要介紹了解讀pandas.DataFrame.corrwith,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python中psutil的介紹與用法

    Python中psutil的介紹與用法

    這篇文章主要給大家介紹了關(guān)于Python中psutil的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python實(shí)現(xiàn)普通圖片轉(zhuǎn)ico圖標(biāo)的方法詳解

    Python實(shí)現(xiàn)普通圖片轉(zhuǎn)ico圖標(biāo)的方法詳解

    ICO是一種圖標(biāo)文件格式,圖標(biāo)文件可以存儲單個圖案、多尺寸、多色板的圖標(biāo)文件。本文將利用Python實(shí)現(xiàn)普通圖片轉(zhuǎn)ico圖標(biāo),感興趣的小伙伴可以了解一下
    2022-11-11
  • Python查找兩個有序列表中位數(shù)的方法【基于歸并算法】

    Python查找兩個有序列表中位數(shù)的方法【基于歸并算法】

    這篇文章主要介紹了Python查找兩個有序列表中位數(shù)的方法,結(jié)合實(shí)例形式分析了Python基于歸并算法遍歷、計算有序列表相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Django使用unittest模塊進(jìn)行單元測試過程解析

    Django使用unittest模塊進(jìn)行單元測試過程解析

    這篇文章主要介紹了Django使用unittest模塊進(jìn)行單元測試過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08

最新評論