In Entwicklung Letztes Updateated:
Teilen:
Jira-Software ist das Projektmanagement-Tool Nr. 1, das von agilen Teams zum Planen, Verfolgen, Freigeben und Unterstützen großartiger Software verwendet wird.

Konvertieren a 2D Array in ein 1D Array heißt Abflachen. Es gibt viele Ansätze, um das Problem zu lösen.

Wir werden einige davon in diesem Tutorial untersuchen.

Sehen wir uns ein Beispiel an.

zufuhr

[[1, 2, 3], [4, 5], [6, 7, 8, 9, 10]]

Output

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

#1. Schleifen

Der häufigste Weg, um das Problem zu lösen, ist die Verwendung von Schleifen. Ich denke, die meisten von euch haben es schon verstanden. Sehen wir uns die Schritte zur Lösung des Problems mithilfe von Schleifen an.

  • Initialisieren Sie die Liste der Listen mit Dummy-Daten und benennen Sie sie als technische Daten.
  • Initialisieren Sie nun eine leere Liste mit dem Namen flache_liste.
  • iterate über die technische Daten.
    • Entpacken Sie alle Elemente aus der aktuellen Liste.
    • Fügen Sie sie dem hinzu flache_liste Verwenden der List Append-Methode.
  • Drucken Sie das Ergebnis.

Siehe den Code für das Problem unten.

# initializing the data and an empty list
data = [[1, 2, 3], [4, 5], [6, 7, 8, 9, 10]]
flat_list = []

# iterating over the data
for item in data:
    # appending elements to the flat_list
    flat_list += item

# printing the resultantn flat_list
print(flat_list)

Sie können eine andere Schleife verwenden, um Unterlistenelemente hinzuzufügen flache_liste statt einer Konzatenationaler Betreiber. Anstelle von Schleifen können wir auch Listenverständnisse verwenden.

Beide machen die gleiche Arbeit. Lassen Sie uns den nächsten Weg sehen, um das Problem zu lösen.

#2. Itertools – Kette

Wir werden eine Methode namens verwenden Kette von itertools eingebautes Modul.

Das Verfahren Kette Prozessates über jede Unterliste und gibt die Elemente zurück, bis keine Unterlisten mehr darin vorhanden sind. Es gibt eine Iterable zurück, die wir in eine Liste umwandeln müssen.

Sehen wir uns die Schritte zur Lösung des Problems an.

  • Initialisieren Sie die Liste der Listen mit Dummy-Daten und benennen Sie sie als technische Daten.
  • Holen Sie sich die Abflachung iterierbar mit itertools.chain (* Daten).
  • Konvertieren Sie das resultierende iterable in eine Liste.
  • Drucken Sie die Abflachungsliste.

Sie können den Code im folgenden Snippet durchgehen.

# importing the module
import itertools

# initializing the data
data = [[1, 2, 3], [4, 5], [6, 7, 8, 9, 10]]

# flattening the list and storing the result
flat_list = itertools.chain(*data)

# converting iterable to list and printing
print(list(flat_list))

#3. Reduzieren Sie mehrstufige Listen

Wir haben gesehen, wie man eine Liste von Listen reduziert. Die oben beschriebenen Methoden zum Reduzieren der Liste funktionieren nicht für mehrstufige Listen. Sehen wir uns ein Beispiel an.

zufuhr

[1, [2, 3, [4, 5]], 6, [[7], [8, 9]]]

Output

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Da wir die Tiefe der Listen vor dem Programm nicht kennen, müssen wir die Rekursion verwenden, um das Problem zu lösen.

  • Initialisieren Sie die Daten wie im Beispiel gezeigt und benennen Sie sie als technische Daten.
  • Initialisieren Sie eine leere Liste mit dem Namen flache_liste.
  • Schreiben Sie eine Funktion namens flatten_list.
    • iterate über die Elemente der angegebenen Liste.
    • Wenn das Element eine Liste ist, rufen Sie dieselbe Funktion erneut rekursiv auf.
    • Wenn das Element keine Liste ist, hängen Sie das Element an das an flache_liste.
  • Rufen Sie die Funktion mit auf technische Daten.
  • Die Funktion füllt alle Elemente in der flache_liste Liste.
  • drucken Sie die flache_liste um die Ausgabe zu überprüfen.

Puh! viele Schritte zum Codieren. Mach dir keine Sorge. Konvertieren der oben genannten stateDas Einfügen in den Code dauert nicht länger als Minuten.

# initializing the data and empty list
data = [1, [2, 3, [4, 5]], 6, [[7], [8, 9]]]
flat_list = []

# function
def flatten_list(data):
    # iterating over the data
    for element in data:
        # checking for list
        if type(element) == list:
            # calling the same function with current element as new argument
            flatten_list(element)
        else:
            flat_list.append(element)

# flattening the given list
flatten_list(data)

# printing the flat_list
print(flat_list)

Denken Sie daran, dass wir die vorhandene Liste nicht konvertiert haben. Stattdessen haben wir Createeine neue Liste mit dem angegebenen Listenelement.

Schlussfolgerung

Hoffe du hast das genossen Lernprogramm. Es gibt vielleicht viele andere Möglichkeiten, eine Liste in Python zu reduzieren, aber ich fand, dass die oben genannten wahrscheinlich die einfachsten sind.

Viel Spaß beim Codieren 🙂

Teilen:
  • Hafeezul Kareem Shaik
    Autor
    Hafeez ist Entwickler und teilt gerne sein Wissen über Python und neue Entwicklungssprachen.

Danke an unsere Sponsoren

Weitere großartige Lektüre zum Thema Entwicklung

Treiben Sie Ihr Geschäft an

Einige der Tools und Services, die Ihrem Unternehmen helfen grow.