python中defaultdict的用法
力扣501.二叉搜索树中的众数
题目链接力扣501.二叉搜索树中的众数
from collections import defaultdict
class Solution:
def searchBST(self,cur,map):
if not cur:
return
map[cur.val] += 1
self.searchBST(cur.left,map)
self.searchBST(cur.right,map)
def findMode(self, root: Optional[TreeNode]) -> List[int]:
map = defaultdict(int)
result = []
if not root:
return result
self.searchBST(root,map)
max_value = max(map.values())
for key,value in map.items():
if value == max_value:
result.append(key)
return result
其中用到了defaultdict,下面来详细叙述defaultdict
什么是defaultdict
从名字中可以看出defaultdict也是一个dict,即键值对
defaultdict接受一个类型对象或函数对象,在取值时,如果不存在对应的key则返回对应的函数返回值或默认构造函数的实例对象:
from collections import defaultdict
dic_1 = defaultdict(int)
dic_2 = defaultdict(tuple)
dic_3 = defaultdict(list)
dic_4 = defaultdict(str)
dic_5 = defaultdict(set)
print(dic_1['a'])
print(dic_2['a'])
print(dic_3['a'])
print(dic_4['a'])
print(dic_5['a'])
输出结果如下:
0 #返回0
() #返回()
[] #返回[]
#返回空字符串
set() #返回set()
items()方法
语法
dict.items()
实例
tinydict = {'小明':'13','小红':'12','小亮':'15'}
#遍历字典列表
for key,value in tinydict.items():
print(key,value)