В Python сортировка по умолчанию является стабильной, то есть сохраняет порядок равных элементов:
a = [2, -1, 0, 1, -2]
sorted(a, key=lambda x: x**2)
# [0, -1, 1, 2, -2]
Функции
max
и min
тоже стараются быть согласованными с поведением sorted
.max
работает аналогично sorted(a, reverse=True)[0]
, а min
— как sorted(a)[0]
.Это означает, что обе функции возвращают самый левый возможный результат:
max([2, -2], key=lambda x: x**2)
# 2
max([-2, 2], key=lambda x: x**2)
# -2
min([2, -2], key=lambda x: x**2)
# 2
min([-2, 2], key=lambda x: x**2)
# -2
👉@BookPython
>>Click here to continue<<