Düzensiz bir liste listesini düzleştirin

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

Evet, bu konunun daha önce işlendiğini biliyorum (burada, burada, burada, burada), ancak bildiğim kadarıyla, biri hariç tüm çözümler aşağıdaki gibi bir listede başarısız oluyor:

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

İstenen çıktının olduğu yer

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

Ya da belki daha iyisi, bir yineleyici. Rastgele bir yuvalama için işe yaradığını gördüğüm tek çözüm bu soruda bulundu:

def flatten(x): sonuç = [] in x için el: if hasattr(el, "__iter__") ve isinstance(el, basestring): sonuç.extend(flatten(el)) başka: sonuç.append(el) dönüş sonuç flatten(L) 

En iyi model bu mu? Bir şeyi gözden mi kaçırdım? Herhangi bir sorun var mı?