2016-06-23 3 views
-3

は辞書です。私は得るTypeError: unhashable type: 'dict'len(set(dictionary)) - 何が間違っていますか?</p> <pre><code>len(set(library)) </code></pre> <p><code>library</code>に問題がある何

+2

「辞書」とは何ですか?私はそのエラーを受け取りません: 'dictionary = {}; len(set(辞書)) - > 0 'となります。 'set(辞書)'が辞書のキーから集合を作るのではないので、 'len(set(辞書))'を実行することは 'len(辞書)'を行うことと同じです。 – Bakuriu

+1

あなたは辞書とあなたが得ているエラーを表示できますか? – RoadRunner

+1

'library'は明らかに辞書の* iterableです。辞書ではなく、' set([{}]) 'を試してみてください(** note **:これは私が今までに書いた最高の[mcve]です)。同じメッセージ。 – jonrsharpe

答えて

0

libraryは辞書ではありません。私はそれがtupleまたはlistdictであると推測していますが、これは1つまたは複数のdictを含む他のより複雑なコレクションタイプである可能性があります。それはdictた場合、setは無意味だろう(元dictlensetlenと同じだろう)が、無害、特に動作を保証する(dictキーは常にハッシュ可能であるため、とset(somedict)だけで作っていますdictのキーのset)。

libraryが本当に何であるか把握する必要があります。

関連する問題