class Solution:
def groupAnagrams0(self, strs: List[str]) -> List[List[str]]:
"""
将字符串列表中的字母异位词分组。
Args:
strs: 输入的字符串列表。
Returns:
一个列表,其中每个子列表包含互为字母异位词的原始字符串。
"""
# 使用 defaultdict 可以简化代码,当访问一个不存在的键时,
# 它会自动创建一个默认值(这里是空列表 list)。
anagram_map = collections.defaultdict(list)
# 遍历输入列表中的每个单词
for word in strs:
# 对单词中的字母进行排序,生成规范的键
# sorted(word) 返回一个字符列表,例如 sorted("eat") -> ['a', 'e', 't']
# "".join(...) 将字符列表重新组合成字符串,例如 "".join(['a', 'e', 't']) -> "aet"
sorted_key = "".join(sorted(word))
# 将原始单词添加到对应排序键的列表中
# 如果 sorted_key 是第一次出现,defaultdict 会自动创建 anagram_map[sorted_key] = []
anagram_map[sorted_key].append(word)
# 哈希表的值(values)就是我们想要的分组列表
# list(...) 将字典的值视图转换为列表
return list(anagram_map.values())