TypeError: unhashable type: 'list' 当我想将一些属性值包含到列表中时

Posted

技术标签:

【中文标题】TypeError: unhashable type: \'list\' 当我想将一些属性值包含到列表中时【英文标题】:TypeError: unhashable type: 'list' when I want to include some attribute values into a listTypeError: unhashable type: 'list' 当我想将一些属性值包含到列表中时 【发布时间】:2021-09-07 15:59:56 【问题描述】:

为了计算分类方法,我想将一些属性值包含到一个列表中。

    def method(self):

    self.FirstWindow = QtWidgets.QMainWindow()
    self.ui = Ui_MainWindow()

    df = pd.read_csv(self.ui.openFileNameDialog)
    df.head(3)

    
    x_new = np.array([self.textEdit_fixedacidity, self.textEdit_volatile, self.textEdit_citricacid, self.textEdit_residualsugar, self.textEdit_chlorides,
                     self.textEdit_freesulfur, self.textEdit_totalsulfur, self.textEdit_density, self.textEdit_pH, self.textEdit_sulphates, self.textEdit_alcohol])

    svc = SVC()
    svc.fit(X_train, y_train)
    pred_svc = svc.predict(x_new)

    print(classification_report(y_test, pred_svc))
    self.conclusion_svc = accuracy_score(y_test, pred_svc)

    rfc = RandomForestClassifier(n_estimators=250)
    rfc.fit(X_train, y_train)
    pred_rfc = rfc.predict(X_test)
    print(classification_report(y_test, pred_rfc))

    knn = KNeighborsClassifier()
    knn.fit(X_train, y_train)
    pred_knn = knn.predict(X_test)
    print(classification_report(y_test, pred_knn))
    self.conclusion_knn = accuracy_score(y_test, pred_knn)

  

但是当我想在列表中插入一些属性值时。

     x_new = np.array([self.textEdit_fixedacidity, self.textEdit_volatile, self.textEdit_citricacid, self.textEdit_residualsugar, self.textEdit_chlorides,
                     self.textEdit_freesulfur, self.textEdit_totalsulfur, self.textEdit_density, self.textEdit_pH, self.textEdit_sulphates, self.textEdit_alcohol])

我在处理此错误消息时遇到了问题。

   TypeError: unhashable type: 'list'

我该怎么办?

【问题讨论】:

【参考方案1】:

在列表[self.textEdit_fixedacidity, self.textEdit_volatile, self.textEdit_citricacid, self.textEdit_residualsugar, self.textEdit_chlorides, self.textEdit_freesulfur, self.textEdit_totalsulfur, self.textEdit_density, self.textEdit_pH, self.textEdit_sulphates, self.textEdit_alcohol] 周围使用大括号 [试图] 创建set。并且list 对象是不可散列的(作为错误状态)并且不能是set 中的元素。

我认为您想将列表传递给 np.array(),而这些花括号是多余的 - 只需删除它们即可。

【讨论】:

以上是关于TypeError: unhashable type: 'list' 当我想将一些属性值包含到列表中时的主要内容,如果未能解决你的问题,请参考以下文章

如何克服 TypeError: unhashable type: 'list'

Python debug——TypeError unhashable type(list/set/dict)

这里的正确语法是啥?获取类型 TypeError: unhashable type: 'dict

Python "TypeError: unhashable type: 'slice'" 用于编码分类数据

TypeError: unhashable type: 'list' 在 python 中使用 groupby 时

TypeError: unhashable type: 'numpy.ndarray'