class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:np = collections.defaultdict(list)for st in strs:name = "".join(sorted(st))np[name].append(st)return list(np.values())
collections.defaultdict(list)创建字典类型,值为list的集合,这个()中的defaultdict
的默认值可以是任何可以通过调用一个无参数函数来生成的对象。这包括内置类型(如 int
、float
、str
、list
、set
、tuple
、dict
)以及自定义的类或函数。
from collections import defaultdict # 创建一个 defaultdict,其默认值为空列表
dd = defaultdict(list) # 访问一个不存在的键,它会自动添加一个空列表
dd['key1'].append('value1') # 'key1' 不存在,但 dd['key1'] 现在是 ['value1'] # 再次访问并添加元素到 'key1'
dd['key1'].append('value2') # dd['key1'] 现在是 ['value1', 'value2'] # 访问一个已存在的键并添加元素
dd['key2'].append('value3') # 'key2' 也不存在,但 dd['key2'] 现在是 ['value3'] # 打印整个 defaultdict
print(dd) # 输出:defaultdict(<class 'list'>, {'key1': ['value1', 'value2'], 'key2': ['value3']}) # 你可以像访问普通字典一样访问 defaultdict
print(dd['key1']) # 输出:['value1', 'value2']
print(dd['key2']) # 输出:['value3'] # 尝试访问一个不存在的键(但这里不会引发 KeyError)
print(dd['key3']) # 输出:[],因为 'key3' 不存在,但 defaultdict 提供了一个空列表作为默认值
使用list()将np.values()转换为列表。