Reduzieren Sie eine unregelmäßige Liste von Listen

| | | | | | | | | | | |

Ja, ich weiß, dass dieses Thema schon einmal behandelt wurde (hier, hier, hier, hier), aber soweit ich weiß, scheitern alle Lösungen, bis auf eine, auf einer Liste wie dieser:

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

Wo die gewünschte Ausgabe steht

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

Oder vielleicht noch besser, ein Iterator. Die einzige Lösung, die ich gesehen habe und die für eine beliebige Verschachtelung funktioniert, findet sich in 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?