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