Flatten a Nested List in Python
Turn [[1, 2], [3, 4], [5, 6]] into [1, 2, 3, 4, 5, 6] with a nested list comprehension.
- Reading a nested comprehension
- The order of the for clauses
- itertools.chain as an alternative
Loop over groups, then over items
Eine verschachtelte Liste ist eine Liste, die andere Listen enthält, etwa [[1, 2], [3, 4], [5, 6]]. Flach machen (flatten) bedeutet, alle inneren Elemente herauszuholen und in eine einzige Liste zu packen, das Ergebnis ist [1, 2, 3, 4, 5, 6].
Das Wichtigste
- [item for group in nested for item in group] reads like two nested loops.
- The outer loop comes first, exactly as in normal for loops.
itertools.chain.from_iterable(nested)does the same lazily.
Wann verwendet man das?
- Die Schreibweise und die Grundbegriffe von Python mit kurzen, leicht verständlichen Beispielen kennenlernen.
- Eine solide Grundlage schaffen, bevor du dich an komplexere Aufgaben wagst.
- Code direkt im Browser ausführen, ohne Python auf dem Computer zu installieren.
Beispielcode
nested = [[1, 2], [3, 4], [5, 6]]
# Read every value from every inner list.
flattened = [value for group in nested for value in group]
print(flattened)
Ergebnis der Ausführung
[1, 2, 3, 4, 5, 6]
Erklärung des Codes
Die List Comprehension enthält zwei for-Schleifen, die wie zwei verschachtelte Schleifen von links nach rechts gelesen werden. Die äußere Schleife for group in nested durchläuft jede Teilliste, und die innere Schleife for value in group holt jedes Element dieser Teilliste heraus und fügt es dem Ergebnis hinzu.
Ändere die Werte und führe das Programm im CodeUtility Python Online-Compiler aus, ohne Python lokal zu installieren.
Übungen zur Vertiefung
Ändere den Code anhand der folgenden Vorschläge. Wenn du selbst etwas änderst und das Ergebnis beobachtest, verstehst du viel mehr, als wenn du den Code nur liest.
- Ändere die Eingabedaten und sage das Ergebnis voraus, bevor du den Code ausführst.
- Füge eine Prüfung für leere oder ungültige Daten hinzu.
- Lagere die Logik in eine eigene Funktion aus und teste sie mit verschiedenen Datensätzen.
Mit einer Challenge üben
Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.
- Flatten a 2D Array Combine the rows of a 2D integer array into one array. Einfach
- Flatten Arbitrarily Nested Lists (Recursion) Practice recursion by flattening arbitrarily nested lists while skipping null entries. Mittel