Inverser une liste
Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 3 sur 65.
Parfois, vous avez besoin de visualiser les éléments d'une liste dans l'ordre inverse. Dart fournit la propriété .reversed qui crée une vue inversée de votre liste sans modifier la liste d'origine.
La propriété .reversed renvoie un itérable qui présente les éléments de la liste dans l'ordre inverse. Cela signifie que le dernier élément apparaît en premier, l'avant-dernier apparaît en deuxième, et ainsi de suite.
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// La liste originale reste inchangée
print(numbers); // [1, 2, 3, 4, 5]Un détail important est que .reversed retourne un itérable, pas une liste. Si vous avez besoin de l'utiliser comme une liste, vous pouvez le convertir en utilisant .toList(). Cette propriété est particulièrement utile lorsque vous devez traiter des données dans l'ordre inverse tout en gardant votre liste originale intacte.
Défi
FacileCréez un programme qui analyse une liste de lecture en affichant les livres dans leur ordre original et inversé. Votre programme doit :
- Lire une chaîne de caractères en entrée représentant le titre de la liste de lecture
- Lire plusieurs chaînes de caractères représentant les titres des livres (la saisie s'arrête lorsque vous recevez une chaîne vide)
- Utiliser la propriété
.reversedpour créer une vue inversée de la liste de livres - Afficher l'analyse de la liste de lecture exactement dans le format indiqué ci-dessous
Par exemple, si le titre de la liste de lecture est "Summer Reading" et que les livres sont "1984", "To Kill a Mockingbird", "The Great Gatsby", votre programme doit afficher :
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: 3Si le titre de la liste de lecture est "Quick Reads" et qu'un seul livre "Animal Farm" est fourni, votre programme doit afficher :
Reading List: Quick Reads
Books in original order: (Animal Farm)
Books in reversed order: (Animal Farm)
Total books: 1Votre programme doit utiliser la propriété .reversed pour afficher les livres dans l'ordre inverse. Rappelez-vous que .reversed renvoie un itérable, donc lorsque vous l'afficherez, il apparaîtra avec des parenthèses plutôt qu'avec des crochets.
Aide-mémoire
Utilisez la propriété .reversed pour voir les éléments de la liste dans l'ordre inverse sans modifier la liste d'origine :
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// La liste d'origine reste inchangée
print(numbers); // [1, 2, 3, 4, 5]La propriété .reversed renvoie un itérable, pas une liste. Pour la reconvertir en liste, utilisez .toList().
Essayez vous-même
import 'dart:io';
void main() {
// Lire le titre de la liste de lecture
String? title = stdin.readLineSync();
// Lire les titres de livres jusqu'à une chaîne vide
List<String> books = [];
String? book;
while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
books.add(book);
}
// TODO: Écrivez votre code ici
// Utilisez la propriété .reversed pour créer une vue inversée de la liste des livres
// Affichez la sortie au format requis
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Manipulation avancée des listes
Propriétés de liste : first & lastÉtat de la liste : isEmpty & isNotEmptyInverser une listeAjouter à une liste : insertSuppression dans une liste : removeWhereRechercher dans une liste : indexOfTrier une listeMélanger une listeRécapitulatif - Organisateur de liste4Manipulation avancée des Maps
Itérer sur une MapVérifier les clés et les valeursPropriétés de Map : keys & valuesAjout conditionnel : putIfAbsentSupprimer des entrées d'une MapMaps imbriquéesRécapitulatif - Mise à jour de l'inventaire2Opérations fonctionnelles sur les listes
Transformer avec 'map'Filtrer avec 'where'Utiliser '.toList()'Vérifier des conditions avec 'any'Conditions avec 'every'Trouver avec 'firstWhere'Récapitulatif - Filtrage de données3Les Ensembles
Qu'est-ce qu'un ensemble ?Créer un ensembleAjouter et supprimer des éléments d'un ensembleVérifier la présence d'éléments dans un ensembleConvertir une liste en ensembleUnion d'ensemblesIntersection d'ensemblesDifférence d'ensemblesRécapitulatif - Liste d'invités uniques