Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/88: Рейтинг темы: голосов - 88, средняя оценка - 4.58
169 / 90 / 71
Регистрация: 10.05.2014
Сообщений: 432
1

Переставить min и max

20.01.2016, 18:54. Показов 15936. Ответов 5
Метки нет (Все метки)

Задание:
"В списке все элементы различны. Поменяйте местами минимальный и максимальный элемент этого списка."

Уже который час ломаю голову, но понять не могу в чем косяк? Работает почти со всем вариантами, кроме '-3000 3000', '2147483647 -2147483648' и '10 9 8 7 6 5 4 3 2 1'.

Python
1
2
3
4
5
6
7
8
9
10
n,l,m = input().split(),int(),int()
l = (max([int(i) for i in n]))
m = (min([int(i) for i in n]))
for i in range(len(n)):
    if n[i] == max(n):
        print(' '.join(n).replace(str(m),str(l),l).replace(str(l),str(m),m))
        break
    elif n[i] == min(n):
        print(' '.join(n).replace(str(l),str(m),l).replace(str(m),str(l),m))
        break
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2016, 18:54
Ответы с готовыми решениями:

Ошибка в работе функции min(), max()
Народ, помогите, если не трудно. Кто знает почему неправильно минимальное, максимальное выводит? B...

Разделить на группы с минимальным отклонением max-min в каждой группе
В классе учатся N человек. Классный руководитель получил указание направить на субботник R бригад...

Найти max{min(o, b), min(c, d)}
3. Найти max{min(o, b), min(c, d)}.

Min and Max в списке
Ребята, подскажите что не так. Нужно найти мин и макс число в списке, который вводит юзер. ...

5
Эксперт по компьютерным сетям
4846 / 2741 / 837
Регистрация: 03.11.2009
Сообщений: 8,419
Записей в блоге: 3
20.01.2016, 19:22 2
Python
1
2
3
4
5
6
o = list(map(int, input().split()))
n = list(o)
n[o.index(min(o))] = max(o)
n[o.index(max(o))] = min(o)
 
print(n)
0
Модератор
Эксперт NIX
2787 / 2032 / 681
Регистрация: 02.03.2015
Сообщений: 6,509
20.01.2016, 19:25 3
Ошибка потому что Вы преобразуете в строку, а в строке 3000 найдет и 3000 и|или -3000 (только без минуса), а 1 — и 1, и 10 (без 0)
Python
1
2
3
4
n = [int(i) for i in input().split()]
data = min(n), max(n)
position = n.index(data[0]), n.index(data[1])
n[position[0]], n[position[1]] = data[1], data[0]
1
8 / 8 / 5
Регистрация: 10.11.2015
Сообщений: 44
Записей в блоге: 3
23.01.2016, 13:26 4
Мне кажется, так будет еще круче:

Python
1
n[o.index(min(o))] = n[o.index(max(o))]
Извиняюсь, но выражение
Python
1
2
n[o.index(min(o))] = max(o)
n[o.index(max(o))] = min(o)
поставит вместо реально минимального значения в массиве - максимальное. Следовательно, реально минимальное исчезнет, а на место максимального(которых уже два одинаковых в списке, и повезет, если будет нужный индекс) встанет не минимальное, а второе по минимальности. Всего наилучшего!
0
Эксперт по компьютерным сетям
4846 / 2741 / 837
Регистрация: 03.11.2009
Сообщений: 8,419
Записей в блоге: 3
23.01.2016, 13:34 5
Цитата Сообщение от Meerith Посмотреть сообщение
поставит вместо реально минимального значения в массиве - максимальное. Следовательно, реально минимальное исчезнет
Именно так бы все и было, если бы мы работали с изначальным списком, а не его копией. Всего наилучшего!
0
2 / 3 / 1
Регистрация: 05.08.2015
Сообщений: 14
28.12.2017, 12:52 6
Python
1
2
3
4
5
a = list(map(int, input().split()))
b = a.index(min(a))
c = a.index(max(a))
a[b], a[c] = a[c], a[b]
print(*a)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.12.2017, 12:52

min и max из четырех
Задача. Найти минимум и максимум четырёх данных чисел бeз использования массивов и циклов. ...

Min и max. Посмотрите пожалуйста
Задача Хакер Василий получил доступ к классному журналу и хочет заменить все свои минимальные...

Min max ведут себя странно
Привет всем, может кто объяснить что я не так делаю. x = "2 3 4 5 6 5 4 -1424 -216 546" x =...

Найти номер max и min числа из трех данных
Фишка в том, что нужно это сделать без использования if. Долго сидел и не смог придумать. Может...

Поиск max и min элементов по двум массивам через numpy
Добрый вечер. В общем, нужно написать функцию, которая принимает на вход два целочисленных массива...

Как в массиве найти больший и меньший элемент без использывания переменных min и max
Как в массиве найти больший и меньший элемент без использывания переменных min и max Добавлено...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru