Войти Создать аккаунт

Включения и сортировка · 17 из 17

Сортировка из адресной строки

На витрине у Кости сортировка живёт в адресе страницы:
?sort=-kategoriya,cena,nazvanie — сначала по категории от Я к А, внутри — от дешёвых к дорогим, при равной цене — по названию. Порядок полей выбирает покупатель, щёлкая по заголовкам, и полей бывает сколько угодно. У части товаров какого-то поля нет вовсе — например, рейтинга у новинок, — и Костя требует, чтобы такие всегда уходили в конец, в какую сторону ни сортируй.

Что сделать

Отсортируйте товары по полям из адресной строки: минус перед полем — по убыванию, равные по всем полям остаются в прежнем порядке.

Что приходит

  • tovary — список товаров-словарей

  • poryadok — поля через запятую, например "-kategoriya,cena"; бывает пустой строкой

Что вернуть

Новый список тех же товаров в нужном порядке; переданный не меняется.

Допишите функцию sortirovat в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

Пример

Три напитка и "-cena": сначала самый дорогой — [{"nazvanie": "Кофе", "cena": 500}, {"nazvanie": "Чай", "cena": 300}, {"nazvanie": "Какао", "cena": 250}].

Тот же пример кодом
Вызов
sortirovat([{"nazvanie": "Чай", "cena": 300}, {"nazvanie": "Кофе", "cena": 500}, {"nazvanie": "Какао", "cena": 250}], "-cena")
Вернуть
[{'nazvanie': 'Кофе', 'cena': 500}, {'nazvanie': 'Чай', 'cena': 300}, {'nazvanie': 'Какао', 'cena': 250}]
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.