Списки · 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']
k — целое, не меньше нуля. Номер больше длины — круг за кругом: при четырёх адресах k = 5 — то же, что k = 1, а k = 4 — то же, что k = 0. На i-м месте нового маршрута стоит адрес, который в старом шёл на k мест позже, — считая по кругу.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.