Neu bei Python. Lernen, eine Funktion zu erstellen, die eine Liste von Listen ergibt ... zum Beispiel etwas, das einen Stammbaum darstellen kann. Hier ist, was ich kam mit:Erstellen einer Liste von Listen für den Stammbaum
def familytree(root):
many = int(input('How many children does "' + root[0] + '" have? '))
if many > 0:
root.append([[] for y in range(many)])
z = root[1]
for j in range(many):
name = [input("Give name of one of " + root[0] + "'s children?")]
z[j] = name
familytree(name)
print(root)
scheint zu funktionieren ...
['A', [['B', [['D', [['G'], ['H']]], ['E', [['I']]]]], ['C', [['F', [['J'], ['K']]]]]]]
... aber führt unnötige Klammern und Druckausgaben.
Irgendwelche Vorschläge für eine bessere Umsetzung?
Wird als nächstes an einer Klassenstruktur arbeiten.
Bitte Refactoring Code Einbuchtungen verwenden. –
Meinen Sie, dass Sie die Art ändern möchten, wie die Liste gedruckt wird? – direprobs
Nicht wirklich. Zusätzlich zu dem Endergebnis, das ich oben eingegeben habe, druckt die Funktion viele Zwischenschritte. Zum Beispiel: ['f', [['j'], ['k']]]] ['c', [['f', [['j'], ['k']]]]] ] – NoPayn