yutkin
@yutkin
НИУ ВШЭ

Почему работают по разному два аналогичных кода в Python 3 ?

Тривиальная задача. Нужно поменять местами минимальный и максимальный элемент в списке.
Изначально делал так:
s = list(map(int, input().split()))
s[s.index(max(s))], s[s.index(min(s))] = s[s.index(min(s))], s[s.index(max(s))]
print(' '.join(map(str, s)))

Ввод:
2 3 4 5 1

Вывод:
2 3 4 5 1

Но при вводе, например:
1 2 3

Вывод:
3 2 1


Аналогичный код:
s = list(map(int, input().split()))
x = s.index(max(s))
y = s.index(min(s))
s[x], s[y] = s[y], s[x]
print(' '.join(map(str, s)))

Все делает правильно.
В чём проблема не могу понять.
  • Вопрос задан
  • 2303 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Power
stackoverflow.com/questions/8725673/multiple-assig...
Ваш первый фрагмент кода эквивалентен
s = list(map(int, input().split()))
x = s[s.index(min(s))]
y = s[s.index(max(s))]
s[s.index(max(s))] = x
s[s.index(min(s))] = y
print(' '.join(map(str, s)))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы