Форум сайта python.su
Дан массив целых чисел из N элементов. Необходимо заменить элементы с k1-го по k2-й включительно на противоположные по знаку.
Формат входных данных
В первой строке входного файла записано число N (1≤N≤1000). Во второй строке через пробел записаны N целых чисел, по модулю не превосходящих 100000, — элементы массива. Третья строка состоит из двух чисел: k1 и k2 (1≤k1≤k2≤N).
Формат выходных данных
Выведите в выходной файл элементы массива после требуемой замены.
Примеры:
Вход
5
1 2 -3 0 5
2 4
Выход
1 -2 3 0 5
n = int(input())
a =
total =
k1, k2 = map(int,input().split())
for i in range(k1 - 1, k2):
a = a*(-1)
total =
print(' '.join(total))
Вывод:
1 5
КУДА ДЕЛИСЬ ЭЛЕМЕНТЫ???
Офлайн
>>> lst = [1, 2, 3, 4, 5] >>> >>> k1, k2 = 2, 4 >>> >>> for i in range(k1 - 1, k2): ... lst[i] = -lst[i] ... >>> lst [1, -2, -3, -4, 5] >>>
Онлайн
>>> s = [1, 2, -3, 0, 5] >>> n, k = 1, 3 >>> [ x*-1 if i >= n and i <= k else x * 1 for i, x in enumerate(s) ] [1, -2, 3, 0, 5]
Офлайн
RodegastПовёлся на этот бред автора? Есть в питоне унарный минус.x*-1
-x
RodegastВот так это в питоне делаетсяi >= n and i <= k
n <= i <= k
safroТо есть k1 не может быть меньше единицы.
Третья строка состоит из двух чисел: k1 и k2 (1≤k1≤k2≤N).
>>> list(enumerate('abcdef', 1)) [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e'), (6, 'f')] >>>
>>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. ...
Отредактировано py.user.next (Ноя. 10, 2020 15:07:26)
Онлайн
Rodegastне работает, если список заполняется с клавы в строчку
Офлайн
py.user.nextунарный минус тоже пробовал, но он не работает при заполнении списка с клавиатуры в строчку
Отредактировано safro (Ноя. 10, 2020 19:01:48)
Офлайн
safroВводить надо строку. А вот когда ты ввёл, ты строку разбиваешь на куски, а потом эти куски, которые тоже являются строками, преобразуешь в целые или вещественные числа.
но он не работает при заполнении списка с клавиатуры в строчку
>>> '123' + 1 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: must be str, not int >>> int('123') + 1 124 >>> float('123') + 1 124.0 >>>
safroЕсть языки, которые сами преобразуют неявно одни типы к другим, но они тоже именно преобразуют типы, просто делают это в скрытом виде.
Перешел с другого языка, поэтому могу довольно глупые вещи делать
Онлайн
py.user.nextДа, видимо нахрапом не получится, придется основательно с самых низов учить
Офлайн