Разворот списка
Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 3 из 65.
Иногда вам нужно просмотреть элементы списка в обратном порядке. Dart предоставляет свойство .reversed, которое создает обратное представление вашего списка без изменения исходного списка.
Свойство .reversed возвращает итерируемый объект, который представляет элементы списка в обратном порядке. Это означает, что последний элемент появляется первым, предпоследний — вторым и так далее.
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// Исходный список остается неизменным
print(numbers); // [1, 2, 3, 4, 5]Важной деталью является то, что .reversed возвращает итерируемый объект, а не список. Если вам нужно работать с ним как со списком, вы можете преобразовать его с помощью .toList(). Это свойство особенно полезно, когда вам нужно обработать данные в обратном порядке, сохраняя при этом исходный список нетронутым.
Задание
ЛегкоСоздайте программу, которая анализирует список для чтения, отображая книги как в оригинальном, так и в обратном порядке. Ваша программа должна:
- Прочитать строковый ввод, представляющий название списка для чтения
- Прочитать несколько строковых вводов, представляющих названия книг (ввод закончится, когда вы получите пустую строку)
- Использовать свойство
.reversedдля создания обратного представления списка книг - Вывести анализ списка для чтения в точном формате, показанном ниже
Например, если название списка для чтения — "Summer Reading", а книги — "1984", "To Kill a Mockingbird", "The Great Gatsby", ваша программа должна вывести:
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: 3Если название списка для чтения — "Quick Reads" и предоставлена только одна книга "Animal Farm", ваша программа должна вывести:
Reading List: Quick Reads
Books in original order: (Animal Farm)
Books in reversed order: (Animal Farm)
Total books: 1Ваша программа должна использовать свойство .reversed для отображения книг в обратном порядке. Помните, что .reversed возвращает итерируемый объект (iterable), поэтому при выводе он будет отображаться в круглых скобках, а не в квадратных.
Шпаргалка
Используйте свойство .reversed, чтобы просмотреть элементы списка в обратном порядке без изменения исходного списка:
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// Исходный список остается неизменным
print(numbers); // [1, 2, 3, 4, 5]Свойство .reversed возвращает итерируемый объект (iterable), а не список. Чтобы преобразовать его обратно в список, используйте .toList().
Попробуйте сами
import 'dart:io';
void main() {
// Прочитать название списка для чтения
String? title = stdin.readLineSync();
// Читать названия книг до пустой строки
List<String> books = [];
String? book;
while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
books.add(book);
}
// TODO: Напишите свой код здесь
// Используйте свойство .reversed для создания перевернутого представления списка книг
// Выведите результат в требуемом формате
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутая работа со списками
Свойства списка: first и lastСостояние списка: isEmpty и isNotEmptyРазворот спискаДобавление в список: insertУдаление из списка: removeWhereПоиск в списке: indexOfСортировка спискаПеремешивание спискаИтоги — Органайзер списков4Продвинутая работа с Map
Итерация по MapПроверка ключей и значенийСвойства Map: keys и valuesУсловное добавление: putIfAbsentУдаление записей из MapВложенные MapИтоги — Обновление инвентаря2Функциональные операции со списками
Преобразование с помощью 'map'Фильтрация с помощью 'where'Использование '.toList()'Проверка условий с помощью 'any'Условия с 'every'Поиск с помощью 'firstWhere'Повторение — фильтрация данных5Проект: Калькулятор корзины
Настройка проектаДобавление товаров в корзину3Множества
Что такое множество?Создание множестваДобавление и удаление элементовПроверка наличия элементов в множествеПреобразование списка в множествоОбъединение множествПересечение множествРазность множествИтоги: уникальный список гостей