参考链接:https://blog.csdn.net/yangsong95/article/details/82319675
Python中通过Key访问字典,当Key不存在时,会引发‘KeyError’异常。为了避免这种情况的发生,可以使用collections类中的defaultdict()方法来为字典提供默认值。
语法格式:
collections.defaultdict([default_factory[, …]])
该函数返回一个类似字典的对象。defaultdict是Python内建字典类(dict)的一个子类,它重写了方法missing(key),增加了一个可写的实例变量default_factory,实例变量default_factory被missing()方法使用,如果该变量存在,则用以初始化构造器,如果没有,则为None。其它的功能和dict一样。
第一个参数为default_factory属性提供初始值,默认为None;其余参数包括关键字参数(keyword arguments)的用法,和dict构造器用法一样。
1. 使用list作为default_factory参数
- value值是列表类型
- 没有对应的key就返回空列表
- 可以使用.append() 将值添加进已有的value list
def group_anagrams(strs:list):
res = collections.defaultdict(list)
for st in strs:
key = "".join(sorted(st)) #为什么要加join,因为str排序后会变成列表['a','e','t']
# print(key)
res[key].append(st)
return res
strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
# 输出: [["bat"],["nat","tan"],["ate","eat","tea"]]