【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)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值