Heim >Backend-Entwicklung >Python-Tutorial >Was ist der effizienteste Weg, eine flache Liste in Python zu reduzieren?
Flache Listen in Python reduzieren
Das Reduzieren einer flachen Liste von Iterables ist eine häufige Operation in Python. Obwohl es mehrere Ansätze gibt, bietet jeder eine unterschiedliche Leistung und Lesbarkeit.
1. Listenverständnis
Ein verschachteltes Listenverständnis kann eine Liste verflachen, führt jedoch zu einem NameError, da die im äußeren Verständnis verwendete Variable (z. B. Menüelement) nicht definiert ist.
2. reduzieren
Die Funktion „Reduzieren“ ermöglicht das Reduzieren mithilfe von list.__add__ als Reduktionsoperation. Diese Methode erfordert jedoch einen zusätzlichen list(x)-Aufruf, um Django QuerySet-Objekte in Listen zu konvertieren.
3. itertools.chain
Die Funktion itertools.chain bietet eine effizientere Option zur Listenreduzierung. Es verwendet einen Generator, um Elemente aus den iterierbaren Elementen zu erzeugen, sodass kein Kopieren oder Listenverständnis erforderlich ist.
Codebeispiel:
import itertools list_of_menuitems = [['image00', 'image01'], ['image10'], []] # Flatten using list comprehension (not recommended) # [image for image in menuitem for menuitem in list_of_menuitems] # Flatten using reduce # reduce(list.__add__, (list(mi) for mi in list_of_menuitems)) # Flatten using itertools.chain flattened_list = list(itertools.chain(*list_of_menuitems))
Kette ist aufgrund ihrer Eigenschaften die bevorzugte Methode zum Reduzieren flacher Listen Leistung und Benutzerfreundlichkeit. Es kann jedes Iterable verarbeiten, einschließlich Django QuerySets.
Das obige ist der detaillierte Inhalt vonWas ist der effizienteste Weg, eine flache Liste in Python zu reduzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!