Python verschachtelte Liste Rekursion-Suche

Gegeben, wird eine verschachtelte Liste L (so, dass jedes element von L ist entweder eine ganze Zahl oder eine Liste, die kann sich
enthalten ganze zahlen oder Listen, die wiederum.... etc) return True i s ist in L.

search([1, [2, 3], 4, [5, [6 , [], [8, 9]], 10]], 8) 

sollte True zurückgeben.

Hier ist was ich habe, so weit:

def search (L,s):
"""(list, anytype) _> Bool
Returns true iff s is present in L
"""
if L:
    if L[0] == s:
        return True
    else:
        return search (L[1:], s)
else:
    return False

Dieser aktuellen code funktioniert für eine Liste, wenn es nicht verschachtelt, oder wenn es verschachtelt ist wie so (das geschachtelte element ist das Letzte element):

[1, 2, 3, [4, 5]]

Aber nicht für die folgenden:

[1, 2, [3, 4], 5]

Wie kann ich meinen code so, dass er arbeitet für eine verschachtelte Liste? mit der geschachtelten element irgendwo in der Liste nicht unbedingt das Letzte element?

Jede Hilfe dankbar!

EDIT: Sorry, habe vergessen anzugeben, dass es muss rekursiv sein.

InformationsquelleAutor gptt916 | 2014-02-09
Schreibe einen Kommentar