Python TypeError: unhashable type: 'list'问题解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_36811967/article/details/87619730

在刷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())

猜你喜欢

转载自blog.csdn.net/sinat_36811967/article/details/87619730