天天看點

defaultdict python_python中defaultdict的用法詳解

初識defaultdict

之前在使用字典的時候, 用的比較随意, 隻是簡單的使用dict.

然而這樣在使用不存在的key的時候發生KeyError這樣的一個報錯, 這時候就該defaultdict登場了.

如何使用defaultdict

可以這樣

from collections import defaultdict

d1 = defaultdict(int)

或者這樣

import collections

d1 = collections.defaultdict(int)

defaultdict與dict執行個體化字典類型的差別

使用defaultdict任何未定義的key都會預設傳回一個根據method_factory參數不同的預設值, 而相同情況下dict()會傳回KeyError.

比較下面代碼:

d1 = dict()

d2 = defaultdict(list)

print(d1['a'])

print(d2['a'])

defaultdict的構造

python官方文檔中對defaultdict的定義如下:

class collections.defaultdict([default_factory[, ...]])

python官方文檔中對defaultdict的解釋如下:

defaultdic

dict subclass that calls a factory function to supply missing values

default_factory 接收一個工廠函數作為參數, 例如int str list set等.

defaultdict在dict的基礎上添加了一個missing(key)方法, 在調用一個不存的key的時候, defaultdict會調用__missing__, 傳回一個根據default_factory參數的預設值, 是以不會傳回Keyerror.

Example

Example 1

s = 'mississippi'

d = defaultdict(int)

for k in s:

d[k] += 1

print(d)

Example 2

s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)]

d = defaultdict(set)

for k, v in s:

d[k].add(v)

print(d)

以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援我們。

本文标題: python中defaultdict的用法詳解

本文位址: http://www.cppcns.com/jiaoben/python/193020.html