写代码时遇到这个问题,代码大概如下:
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类型就可以了。