TypeError: unhashable type: 'list'
时间: 2023-07-24 11:15:59 浏览: 50
这个错误通常是由于尝试将列表或其他不可哈希的对象用作字典的键或集合的元素导致的,因为字典和集合需要其元素是可哈希的。
要解决这个错误,可以考虑使用元组或其他可哈希的对象代替列表作为字典的键或集合的元素。
例如,如果有一个列表的列表,你可以使用tuple()函数将每个列表转换为元组,然后将每个元组作为字典的键或集合的元素。示例如下:
```
list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
dict_of_lists = {tuple(lst): sum(lst) for lst in list_of_lists}
set_of_lists = {tuple(lst) for lst in list_of_lists}
```
在这个示例中,我们使用tuple()函数将每个列表转换为元组,并将每个元组作为字典的键或集合的元素。这样,我们就可以避免 "unhashable type: 'list'" 的错误。
当然,如果你需要使用列表作为字典的键或集合的元素,你可以考虑使用其他数据结构,例如有序字典或有序集合。这些数据结构可以保留列表的顺序,并且仍然可以用作字典的键或集合的元素。
相关问题
TypeError: unhashable type 'dict'
TypeError: unhashable type: 'numpy.ndarray'错误通常是由于尝试使用不可哈希的numpy数组作为字典的键或集合的元素而引起的。解决此错误的方法是将numpy数组转换为元组或列表,以便它们可以被哈希。可以使用numpy.ndarray.tolist()方法将numpy数组转换为列表,或使用tuple()将其转换为元组。
而TypeError: unhashable type 'dict'错误通常是由于尝试使用不可哈希的字典作为字典的键或集合的元素而引起的。解决此错误的方法是将字典转换为元组或列表,以便它们可以被哈希。可以使用dict.items()方法将字典转换为元组列表,或使用tuple()将其转换为元组。
TypeError: unhashable type: 'set'
当出现TypeError: unhashable type: 'set'报错时,通常是因为在使用set()函数时,传递进来的元素不可哈希。set()函数只能接受可哈希的元素作为参数。
可哈希的元素包括int、float、str、tuple等,而不可哈希的元素包括list、set、dict等。所以当将不可哈希的元素作为set()函数的参数时,就会抛出TypeError: unhashable type: 'set'的异常。
解决此问题的方法是确保传递给set()函数的元素是可哈希的。如果要将一个列表作为set()函数的参数,可以先将列表转换为元组,因为元组是可哈希的。
例如,将一个列表转换为元组后再使用set()函数:
```
my_list = [1, 2, 3, 4, 5]
my_set = set(tuple(my_list))
```
这样就可以避免TypeError: unhashable type: 'set'的错误了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [python3 TypeError: unhashable type set解决方案](https://blog.csdn.net/weixin_34336526/article/details/89008436)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [Python编码报错 TypeError: unhashable type set](https://blog.csdn.net/qq_45175681/article/details/123925651)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [测量程序编制 - python 46数据类型:Set(集合)-添加.pptx](https://download.csdn.net/download/u011062044/85326440)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)