python字典用法

        有dict和defaultdict两种字典。

        defaultdict 是 Python 标准库中 collections 模块提供的一个类,它是 dict 的一个子类,具有与普通字典相同的接口和功能,但在某些方面表现出不同的行为。 与普通的字典相比,defaultdict 的一个主要特征是在创建时可以指定一个默认值的工厂函数。当你尝试访问字典中不存在的键时,defaultdict 会使用该工厂函数来生成一个默认值,并将其与该键相关联。

示例:

# 计算字符频率
from collections import defaultdict

s = "apple"

freq1 = defaultdict(int)# 创建一个 defaultdict,指定默认值为 int 类型的 0
freq2 = dict()
for char in s:
    freq1[char] += 1 #当freq1中没有char键时,会默认该键的值为0,因此可以正常做+1的操作
    #freq2[char] += 1 #这行会报错,因为dict中访问不存在的键时会报错
    freq2[char] = freq2.get([char], 0)+1 #get方法:当访问的[char]键存在时,会返回对应的值;不存在时返回0。这样不会报错

print(freq1)  # 输出: defaultdict(<class 'int'>, {'a': 1, 'p': 2, 'l': 1, 'e': 1})
print(freq2)  # 输出: dict(<class 'int'>, {'a': 1, 'p': 2, 'l': 1, 'e': 1})

总结:

defaultdict类型,可以对不存在的键的值做加减操作,默认不存在的键的值是0

dict类型,在对键的值做操作时,需要加上get方法,避免访问到不存在的键导致报错        

 dict的get方法与setdefault方法区别

示例

dic = {'a': 1, 'b': 2}
value = dic.get('a')  # 返回 1
value = dic.get('c', 3)  # 返回 3,因为 'c' 不在字典中
print(dic)  # {'a': 1, 'b': 2},字典未被修改
dic = {'a': 1, 'b': 2}
value = dic.setdefault('a', 3)  # 返回 1,'a' 已存在,值为 1
value = dic.setdefault('c', 3)  # 返回 3,'c' 不存在,设置为 3
print(dic)  # {'a': 1, 'b': 2, 'c': 3},字典被修改

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值