Поменяйте местами min и max
В списке все элементы различны. Поменяйте местами минимальный и максимальный элемент этого списка.
PS Сделать надо максимально просто
PSS не так :
a = [int(s) for s in input().split()]
index_of_min = 0
index_of_max = 0
for i in range(1, len(a)):
if a[i] > a[index_of_max]:
index_of_max = i
if a[i] < a[index_of_min]:
index_of_min = i
a[index_of_min], a[index_of_max] = a[index_of_max], a[index_of_min]
print(' '.join([str(i) for i in a]))
И не так
a = [int(i) for i in input().split()]
min_index = a.index(min(a))
max_index = a.index(max(a))
[a[max_index], a[min_index]] = [a[min_index], a[max_index]]
print(' '.join([str(i) for i in a]))
Ответы (2 шт):
Вы бы хоть сказали, чем вам функции не угодили, особенно первая. Почему "не так"? И что в вашем понимании "простое решение"?
Ну вот вам более "простое" решение (впрочем, я в этом не уверен, но вдруг вам оно таким покажется?)
a = [int(s) for s in input().split()]
a[a.index(max(a))], a[a.index(min(a))] = a[a.index(min(a))], a[a.index(max(a))]
Существует эффективный алгоритм поиска максимума и минимума. Если под простотой понимается эффективность.
Разобьем все элементы на пары, и будем искать в каждой паре минимум и максимум (n/2 сравнений), затем минимум будем искать только среди минимальных элементов пар, а максимум - среди максимальных. Общее количество сравнений будет около 3n/2 (проблема возникает, когда количество элементов нечетное - один из элементов остается без пары).
a = [int(s) for s in input().split()]
if a[0]>a[1]:
index_of_min = 1
index_of_max = 0
else:
index_of_min = 0
index_of_max = 1
for i in range(2, len(a)-1,2):
if a[i] > a[i+1]:
if a[i+1]<a[index_of_min]:
index_of_min=i+1
if a[i]>a[index_of_max]:
index_of_max=i
else:
if a[i]<a[index_of_min]:
index_of_min=i
if a[i+1]>a[index_of_max]:
index_of_max=i+1
if len(a) % 2==1:
if a[len(a)-1]<a[index_of_min]:
index_of_min=len(a)-1
if a[len(a)-1]>a[index_of_max]:
index_of_max=len(a)-1
print(a[index_of_max], a[index_of_min])
c=a[index_of_max]
a[index_of_max]=a[index_of_min]
a[index_of_min]=c
print(a)