Invertir una lista
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 3 de 65.
A veces necesitas ver los elementos de una lista en orden inverso. Dart proporciona la propiedad .reversed que crea una vista invertida de tu lista sin cambiar la lista original.
La propiedad .reversed devuelve un iterable que presenta los elementos de la lista en orden inverso. Esto significa que el último elemento aparece primero, el penúltimo aparece en segundo lugar, y así sucesivamente.
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// La lista original permanece sin cambios
print(numbers); // [1, 2, 3, 4, 5]Un detalle importante es que .reversed devuelve un iterable, no una lista. Si necesitas trabajar con él como una lista, puedes convertirlo usando .toList(). Esta propiedad es particularmente útil cuando necesitas procesar datos en orden inverso manteniendo intacta tu lista original.
Desafío
FácilCrea un programa que analice una lista de lectura mostrando los libros tanto en su orden original como en orden inverso. Tu programa debe:
- Leer una entrada de cadena que represente el título de la lista de lectura
- Leer múltiples entradas de cadena que representen títulos de libros (la entrada terminará cuando recibas una cadena vacía)
- Usar la propiedad
.reversedpara crear una vista invertida de la lista de libros - Imprimir el análisis de la lista de lectura en el formato exacto que se muestra a continuación
Por ejemplo, si el título de la lista de lectura es "Summer Reading" y los libros son "1984", "To Kill a Mockingbird", "The Great Gatsby", tu programa debería mostrar:
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: 3Si el título de la lista de lectura es "Quick Reads" y solo se proporciona un libro "Animal Farm", tu programa debería mostrar:
Reading List: Quick Reads
Books in original order: (Animal Farm)
Books in reversed order: (Animal Farm)
Total books: 1Tu programa debe usar la propiedad .reversed para mostrar los libros en orden inverso. Recuerda que .reversed devuelve un iterable, por lo que cuando lo imprimas, se mostrará con paréntesis en lugar de corchetes.
Hoja de referencia
Usa la propiedad .reversed para ver los elementos de la lista en orden inverso sin modificar la lista original:
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// La lista original permanece sin cambios
print(numbers); // [1, 2, 3, 4, 5]La propiedad .reversed devuelve un iterable, no una lista. Para convertirlo de nuevo en una lista, usa .toList().
Pruébalo tú mismo
import 'dart:io';
void main() {
// Leer el título de la lista de lectura
String? title = stdin.readLineSync();
// Leer títulos de libros hasta encontrar una cadena vacía
List<String> books = [];
String? book;
while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
books.add(book);
}
// TODO: Escribe tu código aquí
// Usa la propiedad .reversed para crear una vista invertida de la lista de libros
// Imprime la salida en el formato requerido
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Manipulación avanzada de listas
Propiedades de listas: first y lastEstado de la lista: isEmpty y isNotEmptyInvertir una listaAñadir a una lista: insertEliminación en listas: removeWhereBúsqueda en una lista: indexOfOrdenar una listaMezclar una listaResumen - Organizador de listas4Manipulación avanzada de mapas
Iterar sobre un mapaComprobación de claves y valoresPropiedades del mapa: keys y valuesAdición condicional: putIfAbsentEliminar entradas de un mapaMapas anidadosResumen - Actualización de inventario2Operaciones funcionales con listas
Transformar con 'map'Filtrar con 'where'Uso de '.toList()'Comprobar condiciones con 'any'Condiciones con 'every'Búsqueda con 'firstWhere'Resumen - Filtrado de datos5Proyecto: Calculadora de carrito de compras
Configuración del proyectoAgregar artículos al carrito3Conjuntos
¿Qué es un Conjunto?Crear un ConjuntoAñadir y eliminar elementos de un ConjuntoComprobar elementos en un ConjuntoConvertir una lista en un ConjuntoUnión de ConjuntosIntersección de ConjuntosDiferencia de ConjuntosResumen - Lista de invitados única