Python

Помогите с задачей на питоне

Условие
Дан список из целых чисел. Требуется найти минимум в этом списке и поменять его с нулевым элементом.

Формат входных данных
Дан список целых чисел (вводится одной строкой), все элементы через пробел.

Формат выходных данных
Выведите измененный список одной строкой, все элементы через пробел.
White Power
White Power
76
Нулевой элемент - это элемент с нулевым индексом?
А если минимумов несколько, тогда как?
Первый встреченный минимум можно поменять, например, так:
 lst = list(map(int, input().split()))
imn = min(range(len(lst)), key = lst.__getitem__)
lst[0], lst[imn] = lst[imn], lst[0]
print(' '.join(map(str, lst)))
Пример:
 3 4 5 1 8 9 1 2
1 4 5 3 8 9 1 2
Видим, что первая единичка поменялась местами с тройкой, а вторая осталась на месте.
Алгоритм линейной сложности, трёхпроходный.

А так можно поменять все минимумы на значение нулевого элемента:
 from functools import reduce
def regmin(t, e):
limn, mn = t; i, n = e
return ({i}, n) if n < mn else (limn | {i}, mn) if n == mn else t
def repl(li, lst, e):
return (e if i in li else n for i, n in enumerate(lst))
z, *lst = map(int, input().split())
imn, mn = reduce(regmin, enumerate(lst), (set(), z))
print(mn, ' '.join(map(str, repl(imn, lst, z))))
Пример:
 3 4 5 1 8 9 1 2
1 4 5 3 8 9 3 2
Видим, что обе единицы заменены на тройки.

Здесь мы сначала собираем все позиции минимума в множество (reduce), а затем заменяем на этих позициях минимум на нулевой элемент (который храним отдельно, он в обработке не участвует, кроме проверки при выводе: если нулевой элемент - и есть минимум, то ничего менять не надо).
Алгоритм трёхпроходный, а асимптотика уже немного выше: линейная от количества элементов умножить на логарифм от количества вхождений минимума.
ВР
Василий Раннев
87 571
Лучший ответ
White Power можете с этой помочь поажлуйста:
Условие
С клавиатуры водится два целых числа: K и N – это индексы элементов, которые нужно поменять местами в исходном списке вещественных чисел.

Если в списке нет элемента с указанным индексом, выведите на экран "Ошибка!", если оба индекса существуют в списке, то выведите исправленный список.

Формат входных данных


Вводится два целых числа, каждое в отдельной строке: K и N.

Далее вводится список вещественных чисел. Вводится одной строкой, все числа через пробел.

Формат выходных данных
Исправленный список или текст: "Ошибка!".
 A = [int(i) for i in input().split()]
mini = min(A)
for i in range(len(A)):
if A[i] == mini: A[i] = 0
print(*A)