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

簡介Python的collections模塊中defaultdict類型的用法

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

defaultdict 主要用來需要對 value 做初始化的情形。對于字典來說,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 的對象 x,當(dāng)訪問某個(gè)還不存在的 key 時(shí),會把 value 自動設(shè)置成 x()。比如上例中,當(dāng)?shù)谝淮卧L問某個(gè)年齡的人 d[person.age] 就會變成 list(), 也就是 []。

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

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

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

標(biāo)準(zhǔn)字典包括一個(gè)方法setdefault()來獲取一個(gè)值,如果值不存在則建立一個(gè)默認(rèn)值。defaultdict初始化容器是會讓調(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開發(fā)之函數(shù)定義實(shí)例分析

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

    這篇文章主要介紹了python開發(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)過一個(gè)路由節(jié)點(diǎn)TTL值會減一。本文我們將通過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畫小女孩放風(fēng)箏的示例

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

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

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

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

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

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

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

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

    jupyter notebook中圖片顯示不出來的解決

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

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

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

    python八種降維方法匯總

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

最新評論

廊坊市| 横山县| 方城县| 洞头县| 乌海市| 竹溪县| 宜黄县| 浮山县| 大姚县| 富宁县| 五家渠市| 汶川县| 馆陶县| 博湖县| 南木林县| 饶阳县| 稻城县| 乾安县| 通化县| 黄梅县| 客服| 绵阳市| 鸡东县| 乌苏市| 休宁县| 化州市| 瓦房店市| 西宁市| 临汾市| 临武县| 抚松县| 千阳县| 额济纳旗| 醴陵市| 黄大仙区| 富宁县| 军事| 商丘市| 济源市| 长沙县| 饶平县|