最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡(jiǎn)介Python的collections模塊中defaultdict類型的用法

 更新時(shí)間:2016年07月07日 16:47:28   作者:CIZIXS  
這里我們來(lái)簡(jiǎn)介Python的collections模塊中defaultdict類型的用法,與內(nèi)置的字典類最大的不同在于初始化上,一起來(lái)看一下:

defaultdict 主要用來(lái)需要對(duì) value 做初始化的情形。對(duì)于字典來(lái)說(shuō),key 必須是 hashable,immutable,unique 的數(shù)據(jù),而 value 可以是任意的數(shù)據(jù)類型。如果 value 是 list,dict 等數(shù)據(jù)類型,在使用之前必須初始化為空,有些情況需要把 value 初始化為特殊值,比如 0 或者 ‘‘。

from collections import defaultdict

person_by_age = defaultdict(list)
for person in persons:
  d[person.age].append(person.name)

defaultdict 和 dict 的使用方法一樣,只有在初始化的時(shí)候必須傳入一個(gè) callable 的對(duì)象 x,當(dāng)訪問(wèn)某個(gè)還不存在的 key 時(shí),會(huì)把 value 自動(dòng)設(shè)置成 x()。比如上例中,當(dāng)?shù)谝淮卧L問(wèn)某個(gè)年齡的人 d[person.age] 就會(huì)變成 list(), 也就是 []。

當(dāng)然也可以使用自己定義的 callable 對(duì)象,比如:

d = defaultdict(lambda: 0)
d["hello"] += 1     # 1
d["a"]         # 0

defaultdict 要比 dict.set_default 效率更高,使用起來(lái)也更直觀和方便。

標(biāo)準(zhǔn)字典包括一個(gè)方法setdefault()來(lái)獲取一個(gè)值,如果值不存在則建立一個(gè)默認(rèn)值。defaultdict初始化容器是會(huì)讓調(diào)用者提前指定默認(rèn)值。

import collections
def default_factory():
  return 'default value'
d = collections.defaultdict(default_factory, foo = 'bar')
print 'd:', d
print 'foo =>', d['foo']
print 'var =>', d['bar']

只要所有鍵都有相同的默認(rèn)值,就可以使用這個(gè)方法。
上面的結(jié)果是:

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

相關(guān)文章

  • python開(kāi)發(fā)之函數(shù)定義實(shí)例分析

    python開(kāi)發(fā)之函數(shù)定義實(shí)例分析

    這篇文章主要介紹了python開(kāi)發(fā)之函數(shù)定義方法,以實(shí)例形式較為詳細(xì)的分析了Python中函數(shù)的定義與使用技巧,需要的朋友可以參考下
    2015-11-11
  • Python實(shí)現(xiàn)Tracert追蹤TTL值的方法詳解

    Python實(shí)現(xiàn)Tracert追蹤TTL值的方法詳解

    Tracert命令跟蹤路由原理是IP路由每經(jīng)過(guò)一個(gè)路由節(jié)點(diǎn)TTL值會(huì)減一。本文我們將通過(guò)scapy構(gòu)造一個(gè)路由追蹤工具并實(shí)現(xiàn)一次追蹤,感興趣的小伙伴可以了解一下
    2022-10-10
  • python Yaml、Json、Dict之間的轉(zhuǎn)化

    python Yaml、Json、Dict之間的轉(zhuǎn)化

    這篇文章主要介紹了python Yaml 、Json 、Dict 之間的轉(zhuǎn)化的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-10-10
  • 用Python畫(huà)小女孩放風(fēng)箏的示例

    用Python畫(huà)小女孩放風(fēng)箏的示例

    今天小編就為大家分享一篇用Python畫(huà)小女孩放風(fēng)箏的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • 用Python實(shí)現(xiàn)控制電腦鼠標(biāo)

    用Python實(shí)現(xiàn)控制電腦鼠標(biāo)

    大家好,本篇文章主要講的是用Python實(shí)現(xiàn)控制電腦鼠標(biāo),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • pyqt5、qtdesigner安裝和環(huán)境設(shè)置教程

    pyqt5、qtdesigner安裝和環(huán)境設(shè)置教程

    這篇文章主要介紹了pyqt5、qtdesigner安裝和環(huán)境設(shè)置方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python自動(dòng)化完成tb喵幣任務(wù)的操作方法

    Python自動(dòng)化完成tb喵幣任務(wù)的操作方法

    2019雙十一,tb推出了新的活動(dòng),商店喵幣,看了一下每天都有幾個(gè)任務(wù)來(lái)領(lǐng)取喵幣,從而升級(jí)店鋪賺錢,然而我既想賺紅包又不想干苦力,遂使用python來(lái)進(jìn)行手機(jī)自動(dòng)化操作,需要的朋友跟隨小編一起看看吧
    2019-10-10
  • jupyter notebook中圖片顯示不出來(lái)的解決

    jupyter notebook中圖片顯示不出來(lái)的解決

    這篇文章主要介紹了jupyter notebook中圖片顯示不出來(lái)的解決操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python創(chuàng)建Flask Talisman應(yīng)用程序的步驟詳解

    python創(chuàng)建Flask Talisman應(yīng)用程序的步驟詳解

    Flask是一個(gè)功能強(qiáng)大的Web框架,主要用于使用Python語(yǔ)言開(kāi)發(fā)有趣的Web應(yīng)用程序,Talisman基本上是一個(gè)Flask擴(kuò)展,用于添加HTTP安全標(biāo)頭我們的Flask應(yīng)用程序易于實(shí)施,本文就給大家講講帶Talisman的Flask安全性,需要的朋友可以參考下
    2023-09-09
  • python八種降維方法匯總

    python八種降維方法匯總

    在Python中,有多種降維方法可以使用,本文就來(lái)介紹八種降維方法以及使用場(chǎng)景,具有一定的參考價(jià)值,感興趣的可以一下,感興趣的可以了解一下
    2023-10-10

最新評(píng)論

松阳县| 寿光市| 光泽县| 横山县| 石景山区| 南康市| 平江县| 德安县| 永州市| 汝城县| 邵阳县| 玛多县| 景洪市| 施秉县| 十堰市| 浙江省| 桦甸市| 临城县| 清水县| 河源市| 孝昌县| 黑山县| 武山县| 罗定市| 呼和浩特市| 长治市| 泸水县| 东台市| 漾濞| 赤壁市| 鹤岗市| 琼海市| 大兴区| 惠东县| 阿荣旗| 凯里市| 客服| 垦利县| 肇东市| 万宁市| 嘉峪关市|