Liste nach Indizes sortieren

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

Das Sortieren einer Liste basierend auf einer anderen Liste, die die gewünschten Indizes enthält, ist eine häufige Aufgabe in der Programmierung. In dieser Herausforderung müssen Sie eine Funktion erstellen, die zwei Listen als Argumente nimmt und eine neue Liste zurückgibt, die basierend auf den Indizes der zweiten Liste sortiert ist.

Liste nach Indizes sortieren

Schreiben Sie eine Funktion sort_by_indexes(lst, indexes, reverse=False), die zwei Listen als Argumente nimmt und eine neue Liste zurückgibt, die basierend auf den Indizes der zweiten Liste sortiert ist. Die Funktion sollte die folgenden Parameter haben:

  • lst: Eine Liste von Elementen, die sortiert werden sollen.
  • indexes: Eine Liste von ganzen Zahlen, die die gewünschten Indizes darstellen, nach denen die lst sortiert werden soll.
  • reverse: Ein optionaler boolescher Parameter, der, wenn auf True gesetzt, die Liste in umgekehrter Reihenfolge sortiert.

Die Funktion sollte eine neue Liste zurückgeben, die basierend auf den Indizes der zweiten Liste sortiert ist.

def sort_by_indexes(lst, indexes, reverse=False):
  return [val for (_, val) in sorted(zip(indexes, lst), key=lambda x: \
          x[0], reverse=reverse)]
a = ['Eier', 'Brot', 'Orangen', 'Konfitüre', 'Äpfel', 'Milch']
b = [3, 2, 6, 4, 1, 5]
sort_by_indexes(a, b) ## ['Äpfel', 'Brot', 'Eier', 'Konfitüre', 'Milch', 'Orangen']
sort_by_indexes(a, b, True)
## ['Orangen', 'Milch', 'Konfitüre', 'Eier', 'Brot', 'Äpfel']

Zusammenfassung

In dieser Herausforderung mussten Sie eine Funktion erstellen, die eine Liste basierend auf einer anderen Liste sortiert, die die gewünschten Indizes enthält. Mit den Funktionen zip() und sorted() konnten Sie die beiden Listen kombinieren und basierend auf den Werten von indexes sortieren. Anschließend haben Sie eine Listenkomprehension verwendet, um das erste Element jedes Paars aus dem Ergebnis zu erhalten und die sortierte Liste zurückzugeben.