So habe ich my question answered auf wie der Mindestwert zu finden, aber was ist, wenn ich das Mindestobjekt wollen? Können wir diesen Code ähnlich vereinfachen?Python Finden Sie Minimum-Objekt mit speziellen Komparator
min = 9999
minChild = None
for child in currentRoot.children:
if child.score < min:
min = child.score
minChild = child
recurseWriteBook(child, depth+1)
Ist Ihre Rekursion gebrochen? Sie rufen eine 'recurse ...()' -Funktion auf, geben nichts zurück, deklarieren keine globalen Variablen und erhalten keinen Rückgabewert von der Funktion. Sie können ein paar Zeilen entfernen, indem Sie minChild.score ansehen und nicht "min" (ein Name, den Sie in Ihrer verknüpften Frage nicht verwenden sollten), aber es ist nicht klar, ob Sie alles vereinfachen können, ohne alle zu sehen davon. Sie können 'min()' jedoch nicht auf verschachtelten Strukturen verwenden. – TessellatingHeckler
Nein, alles funktioniert, außer dass ich meine min = 9999 auf 1 << 31 erhöhen musste, aber ich denke, ich habe meine Funktion geändert, so dass sie nicht mehr rekursiv ist. Ich schreibe nur auf die Festplatte, während ich tiefer in den Baum eindringe . Es schien einfacher, es vorwärts zu treiben, da ich keine Blattknoten benötige wie ich, wenn ich minimiere. Wenn Sie an der ganzen Funktion interessiert sind, ist es hier: http://pastebin.com/xVue2i5c – Josh