在刷leetcode49. 字母异位词分组这一题的时候,开始想的是直接把sorted(str)作为key构建dict,出现了如题所示的错误,之后将list转换成tuple后就可以了。
class Solution:
def groupAnagrams(self, strs):
"""
:type strs: List[str]
:rtype: List[List[str]]
"""
res_dict = {}
for str in strs:
sorted_str = sorted(str)
if sorted_str not in res_dict:
res_dict[sorted_str] = [str]
else:
res_dict[sorted_str].append(str)
return list(res_dict.values())
报错:
TypeError: unhashable type: 'list'
修改:
class Solution:
def groupAnagrams(self, strs):
"""
:type strs: List[str]
:rtype: List[List[str]]
"""
res_dict = {}
for str in strs:
tuple_str = tuple(sorted(str))
if tuple_str not in res_dict:
res_dict[tuple_str] = [str]
else:
res_dict[tuple_str].append(str)
return list(res_dict.values())