Включения и сортировка · 15 из 15
Раскладка витрины
Задействованы также: Списки, Вложенные структуры
На главной странице шесть мест, и Костя требует: не больше двух товаров одной категории подряд, иначе витрина выглядит как склад. Внутри этого ограничения — по убыванию рейтинга.
Что сделать
Разложите товары по местам на главной — так, чтобы витрина не выглядела складом.
Что приходит
tovary— список товаров: словари с ключами"название","категория"и"рейтинг"mest— сколько мест на витрине
Что вернуть
Список названий: каждый раз товар с наибольшим рейтингом, который не даст трёх одной категории подряд; при равном рейтинге — по алфавиту; подходящих нет — список кончается раньше.
Допишите функцию razlozhit в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
А, Б и В — «дом» с рейтингами 5, 4,9 и 4,8, Г — «сад» с рейтингом 1. Первые два места — А и Б. В был бы третьим «домом» подряд, поэтому третьим идёт Г, а за ним уже можно В: ["А", "Б", "Г", "В"].
razlozhit([{'название': 'А', 'категория': 'дом', 'рейтинг': 5.0}, {'название': 'Б', 'категория': 'дом', 'рейтинг': 4.9}, {'название': 'В', 'категория': 'дом', 'рейтинг': 4.8}, {'название': 'Г', 'категория': 'сад', 'рейтинг': 1.0}], 4)
['А', 'Б', 'Г', 'В']
Функция принимает список товаров — словарей с ключами «название», «категория», «рейтинг» (дробное) — и число мест (целое). Возвращает список названий: каждый раз берётся товар с наибольшим рейтингом из тех, что не нарушают правило «не больше двух подряд одной категории»; при равном рейтинге — раньше по алфавиту. Если подходящих товаров не осталось, список заканчивается досрочно.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.