大学四年中看了无数篇别人发的帖子,忽然意识到自己也应该多多发表多多积累,那就学啥写啥吧
defaultdict 概括
python 中的defaultdict 是Python数据结构“字典”中的有特点的内容,所属包为 collections
其目的是解决字典查找时的缺失值时自动建立新的键,而不会出现报错的情况。
下面具体解释一下上述内容。
python字典
- 概括:字典Python中一种基本数据结构,其含义类似于C++中的“map",即为一个容器,其中装满了一对对键值对。
- 字典的定义:
d = {key1 : value1, key2 : value2 } 其中key 和value是一一对应的关系,二者数据类型可同可不同,其中键不能为列表,值可以为列表等任何数据类型 - 字典查找:直接利用[方括号]
如定义一个字典 myself = {“最喜欢吃” : “肉” " 最不喜欢吃" : “鱼”};
查找是直接用 my_favorite=myself [“最喜欢吃”] ;就可以了 - 注意:如果在字典中查找不存在的键会报错
如以上述定义为前提,查找my_favorite=myself [“我爸是谁”] ; 系统会得到keyerror报错。
处理缺失值
定义:myself = {“最喜欢吃” : “肉” " 最不喜欢吃" : “鱼”};
- get返回默认值:
my_favorite=myself.get(“最喜欢吃”,0)键“最喜欢吃”已经存在,设置默认值0结果还是“肉”;
my_favorite=myself.get(“我爸是谁”, "李刚”)对于不存在的键“我爸是谁”,默认值则为“李刚”。 - 通过方括号为键赋值
myself[“最喜欢吃”] =“0” — 对于已有键,替换原有值“肉”为 “0”
myself["我爸是谁“]= “李刚” — 对于不存在的键,再添加一条记录
defaultdic 使用规范
使用该函数,在查找一个没有包含在内的键时,它用一个你提供的零参数函数建立一个新的键,并设立默认值类型为你规定的类型。
-
d1 = defaultdict(int) —调用函数后返回值即我们创建的标准字典,Int默认值为0,括号内必须为零参数函数
-
d1 = defaultdict(list) —生成空列表
d1[3].append(1)—现在d1包含{ 3 : [1] } -
d1 = defaultdict(dict)—生成新字典
d1[“Beijing”][“City”]=“China” —{ “Beijing” : { “City” : “China”} }以上可看出,由于该函数自带对新键创建默认值的功能,当我们不想每次都查找某键是否存在,是否需要遍历一遍的时候,该函数就很有用了。
处理缺失值方面的应用— defaultdict
例: 如下代码旨在查找文件中的单词对应数目(即存在该单词就加1,不存在就创建该单词对应的键值对,并初始化值为0)
from collections import efaultdict
word_counts = defaultdict(int) # int()默认生成0
for word in document:
word_counts[word]+=1