python字典设置默认值_使用defaultdict为字典设置默认值

defaultdict 是使用C语言写的一个类,因此性能也是很高

from collections import defaultdict

传统统计一个列表中元素重复次数

user_dict = {}

user_list = ['hongshaorou1', 'hongshaorou2', 'hongshaorou2', 'hongshaorou3', 'hongshaorou1']

for user in user_list:

if user not in user_dict:

user_dict[user] = 1

else:

user_dict[user] += 1

我们可以使用setdefault简化代码,setdefault可以为不存在的键设置默认值

使用setdefault比上面的方法要高效,因为少做了一次查询

for user in user_list:

user_dict.setdefault(user, 0)

user_dict[user] += 1

我们先看一下defaultdict的特性

# In [1]: from collections import defaultdict

#

# In [2]: default_dict = defaultdict(int)

#

# In [3]: default_dict['hongshaorou']

# Out[3]: 0

我们使用defaultdict函数可以为不存在的键赋默认值,可以是list对应[],也可以是int对应0

defaultdict函数的传入的是可调用对象: list,int,dict

增加了代码严谨性,便于初始化

使用defaultdict完成计数

default_dict = defaultdict(int)

for user in user_list:

default_dict[user] += 1

如果我们想直接在defaultdict函数里面初入带值的的dict是不允许的

group_dict = {

"group1": {

"name": "",

"nums": 0

}

}

我们可以使用方法,返回想要默认填充的字典值,因为方法面也是可调用对象

def gene_default():

return {

"name": "",

"nums": 0

}

default_dict = defaultdict(gene_default)

default_dict["group1"]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值