Упражнения

Большинство упражнений этого листка копирует задачи предыдущего листка. Но в предыдущем листке задачи необходимо решать без использования срезов, дополнительных списков, методов списков.

В этом же листке, наоборот, нельзя использовать циклы (кроме последних двух задач). Используйте срезы и методы.

Для всех задач написано, какое наибольшее число строк может быть в вашей программе.

Если программа решается в одну строку, то необходимо использовать функции внутри функций. Например, вот так можно вычислить сумму всех чисел, введенных в строку, используя стандартную функцию sum:

print(sum(map(int, input().split())))

Обратите внимание, в однострочном решении нельзя сохранять список в переменной — нужно сразу же его обработать и вывести результат.

Решение в две строки строки, как правило, должно иметь следующий вид:

a = input().split()
print(' '.join(...))

При этом зачастую не требуется преобразовывать элементы списка к типу int.

Решение в три строки строки, как правило, должно иметь следующий вид:

a = input().split()
a = ...
print(' '.join(...))

A: Четные индексы

Решите эту задачу в одну строку.

Ввод Вывод
1 2 3 4 5
1 3 5

D: Наибольший элемент

Решите эту задачу в две строки.

Ввод Вывод
1 2 3 2 1
3 2

N: Переставить в обратном порядке

Решите эту задачу в одну строку.

Но от вас требуется только вывести входные числа в обратном порядке, а не переставлять элементы списка.

Ввод Вывод
1 2 3 4 5
5 4 3 2 1

O: Переставить соседние

Решите эту задачу в три строки.

Но от вас требуется только вывести входные числа в обратном порядке, а не переставлять элементы списка.

Ввод Вывод
1 2 3 4 5
2 1 4 3 5

Q: Циклический сдвиг вправо

Решите эту задачу в две строки

Но от вас требуется только вывести числа в нужном порядке, а не переставлять элементы списка.

Ввод Вывод
1 2 3 4 5
5 1 2 3 4

R: Развернуть элементы с нечётными индексами (новая)

Дан список чисел. Переставьте его элементы следующим образом. Элементы с чётными индексами (0, 2, 4, ...) остаются на своих местах, а элементы с нечётными индексами меняют свой порядок на противоположный.

Выведите полученный список после модификации.

Решите эту задачу в три строки. Первая строка — считывание списка, вторая строка — модификация списка, третья строка — вывод результата.

Ввод Вывод
9 8 7 6 5 4 3 2
9 2 7 4 5 6 3 8
9 8 7 6 5 4 3 2 1
9 2 7 4 5 6 3 8 1

S: Переставить половинки списка (новая)

Дан список чисел. Разделите его на две равные части и переставьте эти части местами, не меняя порядка элементов внутри одной части. Если в списке нечётное число элементов, то средний элемент остаётся на своём месте.

Выведите полученный список после модификации.

Решите эту задачу в три строки. Первая строка — считывание списка, вторая строка — модификация списка, третья строка — вывод результата.

Ввод Вывод
9 8 7 6 5 4 3 2
5 4 3 2 9 8 7 6
9 8 7 6 5 4 3 2 1
4 3 2 1 5 9 8 7 6

X: Числа \(k\)-боначчи

Решите эту задачу в пять строк

Первая строка — считывание данных. Вторая строка — создание списка. Третья строка — цикл for. Четвертая строка — добавление нового элемента в список. Пятая строка — вывод результата. Для суммирования среза списка используйте функцию sum.

Ввод Вывод
3 6
17
100 0
1

Y: Кузнечики

Решите эту задачу в четыре строки

Первая строка — считывание списка. Вторая строка — цикл for и считывание числа повторений. Третья строка — модификация списка в цикле. Четвертая строка — вывод результата.

Ввод Вывод
1 2 3 4 2
2
4 1 2 2 3