TypeError:无法散列的类型:'list'如何将图像以相同顺序放入列表中?

用户名

我写了 views.py

import os
import cv2
from pathlib import Path

path1 = Path(__file__).parent
path1 /= "../test1"

path2 = Path(__file__).parent
path2 /= "../test2"

index_list =[]
for i in path1.iterdir():
  i = str(i)
  if i.split(".")[-1].lower() in {"jpeg", "jpg", "png"}:
      img = cv2.imread(i)
      print(type(img)) #1
      img = img.tolist()
      print(type(img)) #2
      if img is None:
         print("Couldn't open file %s" % i)
      else:
         index_list.append(img)
         index_list = sorted(set(index_list), key=index_list.index)

test1test2文件夹中有图片。

当我运行这些代码时,

TypeError:无法散列的类型:“列表”错误

发生。Traceback表示Traceback(最近一次通话是最后一次):

在index_list = sorted(set(index_list),key = index_list.index)中的文件“ views.py”的第33行。#1中的print(type(img))显示,#2中的print(type(img))显示。#2中的print(type(img))的img具有[[[255,255,255],[255,255,255],[255,255,255] ・ ・ ・]]。

我认为这些值是列表的嵌套会导致此错误。但是我不明白如何修复这些数据。如何以相同顺序将图像数据放入列表中?

whackamadoodle3000

您的问题在这里:index_list = sorted(set(index_list), key=index_list.index)您不能在列表列表上使用set,因为列表不可散列。

相反,请尝试以下操作: index_list = sorted(set([tuple([tuple(r) for r in e]) for e in index_list]), key=index_list.index)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何修复'TypeError:无法散列的类型:'list'错误?

Python:将txt导入字典。Split()TypeError:无法散列的类型:'list'

TypeError:不可散列的类型:Django / djangorestframework中的'list'

Python:TypeError:无法散列的类型:“列表”

熊猫:TypeError:无法散列的类型:“列表”

如何克服TypeError:无法散列的类型:“列表”

如何修复TypeError:无法散列的类型:“列表”错误

TypeError:无法散列的类型:python中的“列表”

在列表中查找最频繁的数字,TypeError:不可散列的类型:'list'

TypeError:无法散列的类型:调用.iloc()时的“列表”

Scrapy(python)TypeError:无法散列的类型:“列表”

在python中TypeError:无法散列的类型:'numpy.ndarray'

TypeError:无法散列的“列表”

TypeError:无法散列的类型:在python中使用groupby时的'list'

我在尝试查找单词频率时遇到TypeError:无法散列的类型:'list'

如何将值放入列表类型字段

计算列表差异时,如何避免出现“ TypeError:无法散列的类型:'dict'”?

TypeError:无法散列的类型:Google Cloud Storage init中的“列表”

TypeError:无法散列的类型:找到产品的成分时为“列表”

Python3:TypeError:无法散列的类型:使用计数器时的“列表”

TypeError:无法散列的类型:'numpy.ndarray'-如何在执行query()时解决此错误

由于“ TypeError:无法散列的类型:'bytearray'”(在树莓派中)而被截断的消息

Django:无法散列的类型:“列表”

Django:无法散列的类型:“列表”错误

无法散列的类型列表python

无法散列的类型:“列表”错误

无法将函数放入列表中

TypeError:不可散列的类型:Python象棋程序中的“列表”

类型错误:无法散列的类型:'列表'(使用集合)