首页 > 解决方案 > TypeError: unhashable type: 'list' 当我想将一些属性值包含到列表中时

问题描述

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

    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'

我应该怎么办?

标签: pythonlistnumpytypeerror

解决方案


在列表周围{使用花括号[试图] 创建一个. 并且object 是不可散列的(作为错误状态)并且不能是.}[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]setlistset

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


推荐阅读