Eine Liste umkehren
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 3 von 65.
Manchmal müssen Sie die Elemente einer Liste in umgekehrter Reihenfolge anzeigen. Dart bietet die Eigenschaft .reversed, die eine umgekehrte Ansicht Ihrer Liste erstellt, ohne die ursprüngliche Liste zu ändern.
Die Eigenschaft .reversed gibt ein Iterable zurück, das die Listenelemente in umgekehrter Reihenfolge darstellt. Das bedeutet, dass das letzte Element zuerst erscheint, das vorletzte an zweiter Stelle und so weiter.
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// Die ursprüngliche Liste bleibt unverändert
print(numbers); // [1, 2, 3, 4, 5]Ein wichtiges Detail ist, dass .reversed ein Iterable zurückgibt, keine Liste. Wenn Sie damit als Liste arbeiten müssen, können Sie es mit .toList() umwandeln. Diese Eigenschaft ist besonders nützlich, wenn Sie Daten in umgekehrter Reihenfolge verarbeiten müssen, während Ihre ursprüngliche Liste unverändert bleibt.
Aufgabe
EinfachErstellen Sie ein Programm, das eine Leseliste analysiert, indem es Bücher sowohl in ihrer ursprünglichen als auch in umgekehrter Reihenfolge anzeigt. Ihr Programm sollte:
- Einen String-Input einlesen, der den Titel der Leseliste darstellt
- Mehrere String-Inputs einlesen, die Buchtitel darstellen (die Eingabe endet, wenn Sie einen leeren String erhalten)
- Die Eigenschaft
.reversedverwenden, um eine umgekehrte Ansicht der Bücherliste zu erstellen - Die Analyse der Leseliste exakt in dem unten gezeigten Format ausgeben
Wenn zum Beispiel der Titel der Leseliste "Summer Reading" ist und die Bücher "1984", "To Kill a Mockingbird", "The Great Gatsby" sind, sollte Ihr Programm Folgendes ausgeben:
Reading List: Summer Reading
Books in original order: (1984, To Kill a Mockingbird, The Great Gatsby)
Books in reversed order: (The Great Gatsby, To Kill a Mockingbird, 1984)
Total books: 3Wenn der Titel der Leseliste "Quick Reads" ist und nur ein Buch "Animal Farm" angegeben wird, sollte Ihr Programm Folgendes ausgeben:
Reading List: Quick Reads
Books in original order: (Animal Farm)
Books in reversed order: (Animal Farm)
Total books: 1Ihr Programm muss die Eigenschaft .reversed verwenden, um die Bücher in umgekehrter Reihenfolge anzuzeigen. Denken Sie daran, dass .reversed ein Iterable zurückgibt. Wenn Sie dieses ausgeben, wird es mit runden Klammern anstelle von eckigen Klammern angezeigt.
Spickzettel
Verwenden Sie die .reversed-Eigenschaft, um Listenelemente in umgekehrter Reihenfolge anzuzeigen, ohne die ursprüngliche Liste zu ändern:
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// Die ursprüngliche Liste bleibt unverändert
print(numbers); // [1, 2, 3, 4, 5]Die .reversed-Eigenschaft gibt ein Iterable zurück, keine Liste. Um es wieder in eine Liste umzuwandeln, verwenden Sie .toList().
Probier es selbst
import 'dart:io';
void main() {
// Titel der Leseliste einlesen
String? title = stdin.readLineSync();
// Buchtitel einlesen, bis eine leere Zeichenfolge eingegeben wird
List<String> books = [];
String? book;
while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
books.add(book);
}
// TODO: Schreiben Sie Ihren Code hier
// Verwenden Sie die Eigenschaft .reversed, um eine umgekehrte Ansicht der Bücherliste zu erstellen
// Geben Sie die Ausgabe im erforderlichen Format aus
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige Gästeliste