Menu
Coddy logo textTech

Invertire una lista

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 3 di 65.

A volte devi visualizzare gli elementi di una lista in ordine inverso. Dart mette a disposizione la proprietà .reversed, che crea una vista della tua lista in ordine inverso senza modificare la lista originale.

La proprietà .reversed restituisce un iterabile che presenta gli elementi dell’elenco in ordine inverso. Ciò significa che l’ultimo elemento appare per primo, il penultimo appare per secondo e così via.

List<int> numbers = [1, 2, 3, 4, 5];

var reversedNumbers = numbers.reversed;
print(reversedNumbers);  // (5, 4, 3, 2, 1)

// La lista originale rimane invariata
print(numbers);  // [1, 2, 3, 4, 5]

Un dettaglio importante è che .reversed restituisce un iterabile, non una lista. Se devi usarlo come lista, puoi convertirlo usando .toList(). Questa proprietà è particolarmente utile quando devi elaborare i dati in ordine inverso mantenendo intatta la lista originale.

challenge icon

Sfida

Facile

Crea un programma che analizzi una lista di lettura mostrando i libri sia nell'ordine originale che in quello inverso. Il tuo programma deve:

  1. Leggere una stringa in input che rappresenta il titolo della lista di lettura
  2. Leggere più stringhe in input che rappresentano i titoli dei libri (l'input terminerà quando riceverai una stringa vuota)
  3. Usare la proprietà .reversed per creare una vista inversa della lista di libri
  4. Stampare l'analisi della lista di lettura nel formato esatto mostrato qui sotto

Ad esempio, se il titolo della lista di lettura è "Summer Reading" e i libri sono "1984", "To Kill a Mockingbird", "The Great Gatsby", il tuo programma dovrebbe produrre:

Reading List: Summer Reading
Books in original order: (1984, To Kill a Mockingbird, The Great Gatsby)
Books in reversed order: (To Kill a Mockingbird, The Great Gatsby, 1984)
Total books: 3

Se il titolo della lista di lettura è "Quick Reads" e viene fornito un solo libro, "Animal Farm", il tuo programma dovrebbe produrre:

Reading List: Quick Reads
Books in original order: (Animal Farm)
Books in reversed order: (Animal Farm)
Total books: 1

Il tuo programma deve usare la proprietà .reversed per mostrare i libri in ordine inverso. Ricorda che .reversed restituisce un iterabile, quindi, quando lo stampi, verrà mostrato tra parentesi tonde anziché tra parentesi quadre.

Provalo tu

import 'dart:io';

void main() {
  // Leggi il titolo della lista di lettura
  String? title = stdin.readLineSync();
  
  // Leggi i titoli dei libri fino a incontrare una stringa vuota
  List<String> books = [];
  String? book;
  while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
    books.add(book);
  }
  
  // TODO: Scrivi qui il tuo codice
  // Usa la proprietà .reversed per creare una vista in ordine inverso della lista books
  // Stampa l'output nel formato richiesto
  
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Dart online