1. 程式人生 > >Python collections.defaultdict 筆記

Python collections.defaultdict 筆記

其實defaultdict 就是一個字典,只不過python自動的為它的鍵賦了一個初始值。這也就是說,你不顯示的為字典的鍵賦初值python不會報錯,看下實際例子。

比如你想計算頻率

frequencies = {}
for word in wordlist:
    frequencies[word] += 1

python會丟擲一個KeyError 異常,因為字典索引之前必須初始化,可以用下面的方法解決

for word in wordlist:
    try:
        frequencies[word] += 1
    except KeyError:
        frequencies[word] 
= 1
for word in wordlist:
    if word in frequencies:
        frequencies[word] += 1
    else:
        frequencies[word] = 1

當然,collections.defaultdict也可以輕鬆的解決這個問題

from collections import defaultdict
frequencies = defaultdict(int) #傳入int()函式來初始化
for word in wordlist:
    frequencies[word] 
+= 1

collections.defaultdict可以接受一個函式作為引數來初始化。什麼意思呢,看上面的例子,我們想要frequencies[word]初始化為0,這時就可以用一個int()函式作為引數出給defaultdict,我們不帶引數呼叫int(),int()就會返回一個0值

相關推薦

Python collections.defaultdict 筆記

其實defaultdict 就是一個字典,只不過python自動的為它的鍵賦了一個初始值。這也就是說,你不顯示的為字典的鍵賦初值python不會報錯,看下實際例子。 比如你想計算頻率 frequencies = {} for word in wordlist: frequencies[wo

Python collections.defaultdict

col 不顯示 nbsp 一個 default 例子 def pos 調用 其實defaultdict 就是一個字典,只不過python自動的為它的鍵賦了一個初始值。這也就是說,你不顯示的為字典的鍵賦初值python不會報錯,看下實際例子。 比如你想計算頻率 freque

python:collections(2)之defaultdict和OrderedDict模組

#defaultdict模組 統計序列中元素出現的次數 示例1: 給定序列users =[“body_1”,“body_2”,“body_3”,“body_4”,“body_1”,“body-3”]統計序列中各個元素出現的次數 方法1: user_dict ={} fo

Python 3 collections.defaultdict()

建立各種資料型別的物件。 與傳統方法不一樣的地方在於,其key值不存在的時候不會報錯,會根據特定型別返回不一樣的值 from collections import defaultdict d1 = dict() print(d1['a']) -->Traceback (most re

pythoncollections模組(namedtuple/defaultdict/OrderedDict等)

collections有的功能: ['deque', 'defaultdict', 'namedtuple', 'UserDict', 'UserList', 'UserString',\ 'Counter', 'OrderedDict', 'ChainMap', 'Awaita

python設定預設字典(setdefault collections.defaultdict

setdefault dict.setdefault(key, default=None) 如果鍵不存在於字典中,將會新增新的鍵並將值設為預設值(改變了字典)。如果字典中包含有給定鍵,則返回該鍵對應的值,否則返回為該鍵設定的值。 stu = [('w

python完全學習筆記

tee lsp 般的 posix adding efi 屬性 路徑 block dir(__builtins__) help(input) ‘let\‘s go‘ #轉義字符 \ r‘c:\now‘ #字符串前加r 自動轉義 str= ‘‘‘

python collections模塊中namedtuple()

ansible最近看Ansible API中引用了collections的namedtuple()網上搜了一番後,發現是一個集合模塊,提供了多種集合類。In [1]: from collections import Callable Hashable

Python學習手冊筆記(1):Python對象類型

python 在Python中一切皆對象,Python程序可以分解為模塊、語句、表達式及對象。如下所示:1 程序由模塊組成2 模塊包含語句3 語句包含表達式4 表達式建立並處理對象 內置對象(核心類型):1)數字:>>> 2+2 #整數加法4>>&g

python基礎學習筆記

好的 留下 path false 找到 __name__ ems 單詞 ups 1 #!/usr/bin/env python 2 #coding=utf-8 3 4 def login(username): 5 if username==‘

Python Click 學習筆記(轉)

col 輸出 小工具 方法 chm 好的 put name 回調 原文鏈接:Python Click 學習筆記 Click 是 Flask 的團隊 pallets 開發的優秀開源項目,它為命令行工具的開發封裝了大量方法,使開發者只需要專註於功能實現。恰好我最近在開發的一個小

Python開發【筆記】:進程

感覺 順序 至少 操作系統 打字 作業 都在 系統 簡單 序言 進程與線程概述:   很多同學都聽說過,現代操作系統比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任務”的操作系統。   什麽叫“多任務”呢?簡單地說,就是操作系統可以同時運行多個任

python   學習筆記

pythonpython 學習筆記1 import : (1)import module (2)from module import argv (3)from module import *2 item : item :把字典中的每一對 key 和 value 組成一個元組,

python   學習筆記 (核心)

python 學習筆記 (核心)python 學習筆記 (核心)Python解釋器從頭到尾一行接一行執行腳本# -*- coding: UTF-8 -*- //字符編碼不區分單引號和雙引號,x=’hello’,x[0],x[-1]指最後一個字符,x[2:4]取子串,‘’’hello’’’ #

Python開發【筆記】:git&github 快速入門

精神 源代碼 公開 平臺 per 其中 http cvs tro github入門 簡介:   很多人都知道,Linus在1991年創建了開源的Linux,從此,Linux系統不斷發展,已經成為最大的服務器系統軟件了。   Linus雖然創建了Linux,但Linux的壯大

Python標準庫筆記(5) — sched模塊

ios6 edi aac err Language func 執行 當前 poj 事件調度   sched模塊內容很簡單,只定義了一個類。它用來最為一個通用的事件調度模塊。   class sched.scheduler(timefunc, delayfunc)這個

Python collections模塊總結

介紹關於類的一些高級主題,這些是可選的,在Python應用程序中,不會常常遇到。 ========================================================================== slots實例 將字符串屬性名稱順序賦值給特殊

Python的基礎筆記

c語言 運行 下載 提示 微軟.net 語言 2.7 基於 交互 python的種類: CPython   當我們從Python官方網站下載並安裝好Python 2.7後,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,

python語言學習筆記整理

hello 如果 顏色 價格 姓名 識別 可變 等於 cat 什麽是程序? 程序等於數據結構加算法,那麽數據結構是一個靜態的東西,算法是一個動態的東西,我們用一個新的語言編寫這個程序,我們要考慮到語言也主要由數據結構和算法相關的東西,或靜態或動態的東西來構成,所以我們可以把

Python開發【筆記】:單線程下執行多個定時器

自動 代碼 python 線程 timer ont -s 大量 過多 單線程多定時器   前言:公司業務需求,實例當中大量需要啟動定時器的操作;大家都知道python中的定時器用的是threading.Timer,每當啟動一個定時器時,程序內部起了一個線程,定時器觸發執行結