Heim >Backend-Entwicklung >Python-Tutorial >Wie können Iteratoren unregelmäßig verschachtelte Listen in Python effizient reduzieren?

Wie können Iteratoren unregelmäßig verschachtelte Listen in Python effizient reduzieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-24 22:35:10653Durchsuche

How Can Iterators Efficiently Flatten Irregularly Nested Lists in Python?

Unregelmäßige Liste von Listen mit Iteratoren reduzieren

Sie haben erwähnt, dass bestehende Lösungen zum Reduzieren verschachtelter Listen bei Strukturen wie [[[1, 2, 3], [ 4, 5]], 6]. Diese Abfrage untersucht die Machbarkeit alternativer Ansätze, insbesondere der Verwendung von Iteratoren.

Der vorgeschlagene Ansatz:

Die vorgeschlagene Lösung beinhaltet die Nutzung von Generatorfunktionen, um den Glättungsprozess zu vereinfachen und die Leistung zu verbessern .

Python 2 Implementierung:

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

Python 3-Implementierung:

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

Vorteile von Iteratoren:

  • Iteratoren sparen Speicher, indem sie Elemente einzeln generieren, anstatt das Ganze zu speichern abgeflachte Liste.
  • Iteratoren verhindern das Kopieren, indem sie Verweise auf Originalelemente liefern, anstatt doppelte Werte zu erstellen.
  • Iteratoren machen den Code besser lesbar, da die Generatorfunktion die Logik zum Navigieren in der verschachtelten Struktur kapselt.

Fazit:

Das Der vorgeschlagene Ansatz unter Verwendung von Iteratoren bietet eine effektive und effiziente Möglichkeit, unregelmäßige Listenlisten zu reduzieren. Im Vergleich zu anderen Methoden behandelt es Fälle mit willkürlichen Verschachtelungstiefen und vermeidet die Nachteile rekursiver oder manueller Reduzierungstechniken.

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

Stellungnahme:
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