python TypeError: unhashable type: 'set'

写代码时遇到这个问题,代码大概如下:

    for i in dataSet:
        for j in canSet:
            if j.issubset(i):
                can_num_dic[j] = can_num_dic.get(j, 0) + 1

TypeError: unhashable type: 'set'

查了一些资料,找到原因:

python 要求字典的键是可哈希的,为什么要求是可哈希的,为了能快速确定对象在字典中的位置。set是可变的,不可哈希,frozenset是不可变的,可哈希。因此,把上面代码里的set类型改成frozenset类型就可以了。

发布了34 篇原创文章 · 获赞 4 · 访问量 3364

猜你喜欢

转载自blog.csdn.net/lvhuike/article/details/103583444