@ACDSee

Как реализовать поиск максимального и минимального значения list'a в одну строку?

Есть лист.
l=[100,-6000,-8000,-3000,-2000,-500,-20000,-120]
Задача найти максимальное и минимальное значение в один проход по массиву.

То есть без итерации всего массива и без функции max,min.

Можно ли сделать решение с помощью lambda?
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
from functools import reduce

extrema = reduce(lambda acc, v: (acc[0] if acc[0] < v else v, acc[1] if acc[1] > v else v), l, (float('inf'), float('-inf')))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@twistfire92
Python backend developer
Что значит без итерации всего массива?

Вот как в один проход:
инициализируешь 2 переменные min и maх, присваиваешь им значение первого элемента в списке. И потом обходишь список сравнивая текущий элемент с min и maх. Если min больше текущего, то значение min меняй на значение текущего. Аналогично с maх.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы