Вопрос задан 30.06.2026 в 19:59. Предмет Информатика. Спрашивает Шарифуллин Эраст.

Срочно, пожалуйста, у меня меньше часа
Как можно сократить этот код, если значения в скобках всегда разные?
Это уже не сократить for i in range(n)...

Перейти к ответам

Ответы на вопрос

Отвечает Hugrov Alex.

Если отличается только индекс в квадратных скобках, то код обычно сокращают циклом. Это не «хуже» ручного перечисления — наоборот, цикл и есть нормальный способ убрать повторения.

Например, вместо:

Python
a[0] = b[0] + 1
a[1] = b[1] + 1
a[2] = b[2] + 1

пишут:

Python
for i in range(n):
a[i] = b[i] + 1

где n — нужное число элементов.

Если индексы не идут подряд, range(n) не подойдёт, но можно перечислить их явно:

Python
for i in (2, 5, 9, 14):
a[i] = b[i] + 1

Если одновременно меняются значения из нескольких списков, удобнее zip:

Python
for i, value in zip(indices, values):
a[i] = value

Например:

Python
indices = [3, 7, 10]
values = [15, 22, 41]

for i, value in zip(indices, values):
a[i] = value

Если повторяющийся фрагмент сложнее, его лучше вынести в функцию:

Python
def process(i):
result[i] = data[i] * 2 + offset[i]

for i in range(n):
process(i)

А вот если в каждой строке различается не только число в скобках, а сама логика вычисления, то «магически» сократить код нельзя. Сначала нужно привести различающиеся данные к списку, словарю или таблице, а общую часть оставить в цикле.

Не стоит заменять это на eval, генерацию строк с кодом или длинные однострочники: код станет короче визуально, но хуже для чтения и отладки.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос