-1

鉴于类中的以下方法(对不起,名称是德语),但主要问题是为什么在listeEntfernen使用liste_links = self.listeEntfernen(self.gewichte, list[x]). 我得到错误:TypeError:未绑定的方法 list.copy() 需要一个参数。我已经尝试切换和删除 self 关键字并尝试从类中调用该函数,但不明白为什么它不会用作方法中list[x]的参数。liste2listeEntfernen()

   def linkeSeite(self, ziel):
    erg_links = []
    erg_rechts = []
    laenge_k_rechts = 1
    laenge_k_links = 1

    while not erg_rechts:
        komb_rechts = itertools.combinations(self.gewichte, laenge_k_rechts)
        if laenge_k_rechts > len(self.gewichte) or ziel > sum(self.gewichte):
            return
        for x in komb_rechts:
            if sum(x) <= ziel:
                continue
            while not erg_links:
                liste_links = self.listeEntfernen(self.gewichte, list[x])
                komb_links = itertools.combinations(liste_links, laenge_k_links)
                if (sum(x) - ziel) in liste_links:
                    erg_links = sum(x) - ziel
                    erg_rechts = x
                    break
                for y in komb_links:
                    if sum(x) - ziel == sum(y):
                        erg_links = y
                        erg_rechts = x
                        break
            laenge_k_links += 1
    laenge_k_rechts += 1
    return [erg_links, erg_rechts]

def listeEntfernen(self, liste1, liste2):
    erg_liste = []
    liste2_kopie = liste2.copy()
    for i in liste1:
        if i not in liste2_kopie:
            erg_liste.append(i)
            continue
        liste2_kopie.remove(i)
    return erg_liste
4

1 回答 1

0

目前尚不清楚 . 的目的是什么list[x]。你没有你的变量list,所以list仍然是内置对象,那么可能是你想要list(x)的。

于 2021-11-28T01:09:48.593 回答