需要帮助理解错误:不可散列类型“设置”表示错误,如何更改为不可变

need help to understand error : unhashable type 'set' mean error, how to change to unmutable

提问人:sirimiri 提问时间:2/2/2021 最后编辑:sirimiri 更新时间:2/2/2021 访问量:517

问:

嗨,任何人都可以帮助我了解如何开始对此进行故障排除?不可散列类型“set”是什么意思

                    vocabulary, _ = list(zip(*count_pairs))
                    vocabulary = list(vocabulary)
     45             full_token_and_id = zip(vocabulary, range(len(vocabulary)))
---> 46             self.full_token_to_id = dict(full_token_and_id)
     47 
     48             self.token_to_id = dict((k, self.full_token_to_id[k]) for k in list(self.full_token_to_id.keys())[:max_vocabulary_size])

TypeError: unhashable type: 'set'

字典 散 列 设置 可变

评论

0赞 Peter Wood 2/2/2021
如果要将 a 用作字典的键,则它必须是 a,以便它是不可变的。否则,可能会在不知道它已更改的情况下将值添加到 中,并且会弄乱 .setfrozensetsetdictdict

答:

2赞 AnotherJunior 2/2/2021 #1

似乎您将可变对象作为字典的键。尝试在字典的键中使用不可变对象。

评论

0赞 sirimiri 2/2/2021
如何将密钥更改为不可变