Python tief rückwärts in einer Liste

Ich habe eine verschachtelte Liste, und ich umkehren müssen jedes element in der Liste. Aber ich weiß nicht, ob die Liste ist eine Liste von Liste von Liste oder nicht.
So ist ein Beispiel:

p = [1, [2, 3, [4, [5, 6]]]]
print deep_reverse(p)
#>>> [[[[6, 5], 4], 3, 2], 1]

q =  [1, [2,3], 4, [5,6]]
print deep_reverse(q)
#>>> [ [6,5], 4, [3, 2], 1]

Was ich habe, so weit ist:

def is_list(p):
    return isinstance(p, list)

def deep_reverse(a):
    a.reverse()
    for i in a:
        if is_list(i):
            i.reverse()
            print a

Funktioniert es auch für den zweiten test, die q, aber tust, die Arbeit für den ersten test.
Ich bin nicht sicher, muss ich die Verwendung einer Rekursion zum Durchlaufen der ganzen Sache? Wie kann ich ändern, meinen code? Danke.

  • Ja, Sie brauchen Rekursion. (Haben Sie versucht, so zu tun?)
  • Riecht nach Hausaufgaben
  • Ihre Funktion geht nur 2 Ebenen tief in der Liste. Als dbaupp sagte, Sie müssen verwenden Sie Rekursion. Als Hinweis, deine Antwort ist richtig bis auf 1 Zeile 😉
  • für eine so einfache Sache wie isinstance(p, list) Sie nicht brauchen, um zu verschleiern, es in eine eigene Funktion
  • Ich bin nicht ganz vertraut mit Rekursion in python aber. Könnten Sie mir einen Tip geben bitte?
  • Nein , es ist nicht die Hausaufgaben. Es ist nur ein Beispiel, das aus meiner Arbeit, die Daten-Struktur ist ähnlich zu den obigen Beispielen. Ich bin neu in python, also poste die Frage hier.
  • Könnten Sie mir bitte einen Tipp, wie man die Rekursion Teil?
  • Sehen ielashi Antwort. Es gibt einen Unterschied von einer Zeile aus dem code, den Sie zur Verfügung gestellt.
  • Also diese Frage, und Ihre andere ( stackoverflow.com/questions/10845321/...) sind von der Udacity ( udacity.com) CS 101 Endgültig. Ich bin kein Lehrer oder so etwas...aber ich würde nicht denken, dass der beste Weg zu verstehen, der informatik ist, haben die Menschen auf stackoverflow Beantwortung der prüfungsfragen für Sie. Also ich denke, du hast Recht, es ist kein "Hausaufgaben-problem".

InformationsquelleAutor Maggie Mi | 2012-06-02
Schreibe einen Kommentar