【python】14_defaultdict

1.defaultdict簡介

collections.defaultdict類,本身提供了默認值的功能, 默認值可以是整形,列表,集合等.
defaultdict 是 dict 的子類。但它與 dict 最大的區別在於,如果程序試圖根據不存在的 key 訪問 value,會引發KeyError 異常;而 defaultdict 提供default_factory 屬性,爲不存在的 key 來自動生成生成默認的 value。

需求:
我們想要一個能將鍵(key)映射到多個值的字典(即所謂的一鍵多值字典)
解決方案:
1). 字典是一種關聯容器,每個鍵都映射到一個單獨的值上。如果想讓鍵映射到多個值,需要將這些多個值保存到容器(列表或者集合)中。
2). 利用collections模塊中的defaultdict類自動初始化第一個值,這樣只需關注添加元素.

from collections import  defaultdict

info = defaultdict(int)
info['a'] += 1
print(info['a'])

info = defaultdict(list)
info['a'].append(1)
info['a'].append(2)
print(info['a'])

info = defaultdict(set)
info['a'].add(1)
info['b'].add(2)
print(info)

在這裏插入圖片描述

2.defaultdict練習

把list(隨機生成50個1-100之間的隨機數)中大於66的元素和小於66的元素,分別存放在字典中。

from collections import  defaultdict
import random
nums = []
nums_dict = defaultdict(list)
for i in range(50):
    nums.append(random.randint(1,100))

for item in nums:
    if item > 66:
        nums_dict['大於66的元素:'].append(item)
    else:
        nums_dict['小於66的元素:'].append(item)
print(nums_dict)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章