Heim > Backend-Entwicklung > Python-Tutorial > Wie kann man unregelmäßig verschachtelte Listen in Python effizient reduzieren?

Wie kann man unregelmäßig verschachtelte Listen in Python effizient reduzieren?

Mary-Kate Olsen
Freigeben: 2024-12-30 18:38:20
Original
588 Leute haben es durchsucht

How to Efficiently Flatten Irregularly Nested Lists in Python?

So reduzieren Sie eine unregelmäßig verschachtelte Liste von Listen

Obwohl es Diskussionen über die Reduzierung von Listenstrukturen gibt, bleiben die Lösungen bei solchen Listen tendenziell unzureichend tief verschachtelt. Ein effektiver Ansatz wird unten vorgestellt:

Rekursiver Funktionsansatz

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
Nach dem Login kopieren

Diese Funktion prüft, ob jedes Element iterierbar ist (außer Strings) und reduziert es rekursiv, wenn dies zutrifft . An das Ergebnis werden nicht iterierbare Elemente angehängt.

Generatorfunktionsansatz

Eine Verbesserung der Lesbarkeit und Leistung des Abflachungsprozesses ist mithilfe von Generatorfunktionen möglich:

Python 2 (mit Iterable ABC):

from collections import Iterable

def flatten(xs):
    for x in xs:
        if isinstance(x, Iterable) and not isinstance(x, basestring):
            for item in flatten(x):
                yield item
        else:
            yield x
Nach dem Login kopieren

Python 3 (mit Tupel für str und Bytes):

from collections.abc import Iterable

def flatten(xs):
    for x in xs:
        if isinstance(x, Iterable) and not isinstance(x, (str, bytes)):
            yield from flatten(x)
        else:
            yield x
Nach dem Login kopieren

Diese Generatorfunktion gibt die abgeflachten Elemente träge zurück und optimiert so die Speichernutzung . Es kann je nach Bedarf wiederholt oder in eine Liste konvertiert werden.

Das obige ist der detaillierte Inhalt vonWie kann man unregelmäßig verschachtelte Listen in Python effizient reduzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage