Reduzieren Sie eine unregelmäßige Liste von Listen

Ja, ich weiß, dass dieses Thema bereits behandelt wurde (Hier, Hier, Hier, Hier), aber meines Wissens scheitern alle Lösungen, bis auf eine, auf einer Liste wie der folgenden:

L = [[[1, 2, 3], [4, 5]], 6]

Wo die gewünschte Ausgabe ist

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

Oder vielleicht sogar noch besser, ein Iterator. Die einzige Lösung, die ich für eine beliebige Verschachtelung gesehen habe, ist gefundenin dieser Frage:

def flatten(x):
    result = []
    for el in x:
        if hasattr(el, "__iter__") and not isinstance(el, basestring):
            result.extend(flatten(el))
        else:
            result.append(el)
    return result

flatten(L)

Ist das das beste Modell? Habe ich etwas übersehen Irgendwelche Probleme?

Antworten auf die Frage(30)

Ihre Antwort auf die Frage