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

Списки · 21 из 27

Маршрут с любого адреса

Руслан объезжает адреса по кругу и возвращается к кухне. Обычно он начинает с первого, но сегодня первый закрыт до обеда, и Лена просит переставить маршрут: начать с адреса под номером k, а пропущенные доехать в конце — по тому же кругу. Лена уверяет, что по кругу считают остатком от деления, и резать список на куски для этого не нужно.

Что сделать

Переставьте маршрут так, чтобы он начинался с адреса номер k, а пропущенные шли в конце, — номером по кругу, без нарезки списка.

Что приходит

  • adresa — адреса по кругу, список строк

  • k — с какого адреса начать: номер с нуля; бывает и больше длины списка — тогда круг проходится заново

Что вернуть

Новый список тех же адресов, начиная с k-го, по кругу; пустой маршрут — пустой список. Переданный список не меняется.

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

Ограничения

  • Без срезов: ни s[a:b], ни s[::-1], ни slice()

  • Без метода .pop()

  • Без import

Обходные пути — тоже нарушение: eval, exec, getattr, имена с двойным подчёркиванием, импорт os, subprocess и им подобных.

Вызов
s_adresa(["Ленина 1", "Мира 5", "Садовая 2", "Лесная 7"], 1)
Вернуть
['Мира 5', 'Садовая 2', 'Лесная 7', 'Ленина 1']
Ctrl+Enter — проверить

Обсуждение

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

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