TypeError: unhashable type: 'dict'
當您嘗試使用字典作為字典或字典中的鍵時,會發生此錯誤一套。 Python 由不可變物件(例如字串、整數、浮點數、凍結集和不可變元組)組成,它們是可散列的並且可以用作鍵。但是,字典是可變的,因此不可哈希。
要使用字典作為鍵,必須將其轉換為可雜湊格式。如果字典僅包含不可變值,您可以使用freezeset() 建立它的可雜湊表示:
<code class="python">dict_key = {"a": "b"} key = frozenset(dict_key.items())</code>
現在您可以使用key 作為字典或集合中的鍵:
<code class="python">some_dict[key] = True</code>
如果字典包含的值本身就是字典或列表,則需要遞歸地將它們轉換為可哈希格式。這是一個可以提供幫助的實用函數:
<code class="python">def freeze(d): if isinstance(d, dict): return frozenset((key, freeze(value)) for key, value in d.items()) elif isinstance(d, list): return tuple(freeze(value) for value in d) return d</code>
透過使用此函數,您可以凍結字典,然後將其用作鍵:
<code class="python">key = freeze(dict_key) some_dict[key] = True</code>
以上是為什麼我在 Python 中收到 \'TypeError: unhashable type: \'dict\'\' 以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!