介绍
本篇文章为大家展示了如何在Python中使用dict和defaultdict,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
先看一个需求
得到collections import defaultdict “““ 需求:统计user_list中字母出现的次数 “““ user_dict =, {} user_list =,(& # 39;一个# 39;,,& # 39;b # 39;,, & # 39; c # 39;,, & # 39;一个# 39;,,& # 39;c # 39;,, & # 39; c # 39;】 #,第一种方式 for item  user_list拷贝: if 才能;item  not 拷贝user_dict: ,,,user_dict[项目],=,1 其他的才能: ,,,user_dict[项目],+=1 打印(user_dict), #,{& # 39;一个# 39;,,2,,& # 39;b # 39;,, 1,, & # 39; c # 39;:, 3} #,第二种方式 user_dict =, {} user_list =,(& # 39;一个# 39;,,& # 39;b # 39;,, & # 39; c # 39;,, & # 39;一个# 39;,,& # 39;c # 39;,, & # 39; c # 39;】 for item  user_list拷贝: user_dict.setdefault才能(项目,,0),#,如果user_dict无项目这个键,添加{项目:0},,,如果有,不管只而且这个方法性能比第一种方式好 user_dict才能[项目],+=,1,#,物品的价值值累加1 打印(user_dict), #,{& # 39;一个# 39;,,2,,& # 39;b # 39;,, 1,, & # 39; c # 39;:, 3} #,第三种方式。使用defaultdict 时间=default_dict defaultdict (int) user_list =,(& # 39;一个# 39;,,& # 39;b # 39;,, & # 39; c # 39;,, & # 39;一个# 39;,,& # 39;c # 39;,, & # 39; c # 39;】 for item  user_list拷贝: default_dict才能[项目],+=,1,#,使用这种方式,代码更简单、性能也更好 打印(default_dict), #, defaultdict (& lt; class & # 39; int # 39;祝辞,,{& # 39;一个# 39;,,2,,& # 39;b # 39;,, 1,, & # 39; c # 39;:, 3})
defaultdict的使用
由上面的示例可知,defaultdict会根据创建实例参数的类型生成一个对应类型的默认值,
这对于dict类型的数据结构而言,可以很好避免KeyError类型的错误。
此外,我们还可以自定义defaultdict调用对象的数据结构,以满足我们实际需要
def 人(): & # 39;才能& # 39;& # 39;自定义一个可调用对象& # 39;& # 39;& # 39; return {才能 ,,,& # 39;名字# 39;:,& # 39;& # 39; ,,,& # 39;年龄# 39;:0 ,,} 时间=default_dict defaultdict(人) default_dict [& # 39; p # 39;】 通过