Die Liste vollständig entschachteln

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In Python kann eine Liste andere Listen als Elemente enthalten, und diese Listen können wiederum weitere Listen als Elemente enthalten, was eine geschachtelte Struktur bildet. Der Prozess des Entschachtelns einer geschachtelten Liste bedeutet, sie in eine eindimensionale Liste umzuwandeln, wobei alle Elemente auf der gleichen Ebene sind. In dieser Herausforderung werden Sie aufgefordert, eine Funktion zu schreiben, die eine Liste rekursiv vollständig entschachtelt, d. h., alle geschachtelten Listen werden rekursiv ausgeflacht.

Die Liste vollständig entschachteln

Schreiben Sie eine Funktion deep_flatten(lst), die eine Liste lst als Argument nimmt und eine neue Liste zurückgibt, die die vollständig entschachtelte Version von lst ist. Die Funktion sollte Rekursion verwenden und die isinstance()-Funktion mit collections.abc.Iterable verwenden, um zu überprüfen, ob ein Element iterierbar ist. Wenn ein Element iterierbar ist, sollte die Funktion deep_flatten() rekursiv auf das Element anwenden. Andernfalls sollte die Funktion eine Liste zurückgeben, die nur dieses Element enthält.

from collections.abc import Iterable

def deep_flatten(lst):
  return ([a for i in lst for a in
          deep_flatten(i)] if isinstance(lst, Iterable) else [lst])
deep_flatten([1, [2], [[3], 4], 5]) ## [1, 2, 3, 4, 5]

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie Sie eine Liste rekursiv vollständig entschachteln, indem Sie die isinstance()-Funktion mit collections.abc.Iterable verwenden. Diese Technik kann nützlich sein, wenn es um geschachtelte Datenstrukturen wie Listen von Listen geht.