Форум сайта python.su
В списке все элементы различны. Поменяйте местами минимальный и максимальный элемент этого списка.[
a = [int(i) for i in input().split()] for i in range(len(a)): a[a.index(max(a))], a[a.index(min(a))] = a[a.index(min(a))], a[a.index(max(a))] print(' '.join([str(i) for i in a]))
Офлайн
покажите списки - как мы угадать можем то?
Офлайн
ok
3 4 5 2 1
1 5 4 3 2
-30000 30000
2147483647 -2147483648
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 17 16 15 14
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1
1
типо таких
Офлайн
dima757потому как в цикле ты их постоянно обмениваешь поэтому если длина списка четная то результат не верный.вообще то в цикле лучше найти индексы мин и мах элементов и потом выйдя из цикла их обменять местами.можно вообще без цикла обойтись но в источнике задачи эталонное решение сделано именно через цикл так что
почему с одним списком работает,
Отредактировано marvellik (Июнь 30, 2016 19:43:41)
Офлайн
marvellik спасибо!!!! Пушкин зажигает
a = [int(i) for i in input().split()] b = 0 c = 0 for i in a: b = a.index(min(a)) c = a.index(max(a)) a[c], a[b] = a[b], a[c] print(' '.join([str(i) for i in a]))
Офлайн
по твоему решению цикл вообще не нужен ты в цикле перебираешь список и каждый раз присваиваешь переменным индексы мах и мин элементов. тут проще намного
a = [int(i) for i in input().split()] b = a.index(min(a)) c = a.index(max(a)) a[c], a[b] = a[b], a[c] print(' '.join([str(i) for i in a]))
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]))
Отредактировано marvellik (Июнь 30, 2016 20:50:02)
Офлайн
я понял, просто забыл убрать(или лень)
Офлайн