← Все вопросы

Как найти максимум и минимум в списке Python?

Задан 22 месяца назад164 просмотров1 ответ
8

Нужно найти наибольшее и наименьшее число в списке. Знаю про max() и min(), но как ещё узнать индекс этого элемента? И как найти максимум по какому-то признаку, если в списке не числа, а словари?

1 ответ

12
✓ Принятый ответ — помог автору

Для чисел всё просто — встроенные max() и min():

nums = [3, 7, 1, 9, 4]
print(max(nums))   # 9
print(min(nums))   # 1

Чтобы узнать индекс максимума, найдите само значение и спросите его позицию через .index():

i = nums.index(max(nums))   # 3 (позиция девятки)

Если в списке не числа, а объекты, и максимум нужен по признаку — передайте key, как в sorted:

people = [{'name': 'Аня', 'age': 30}, {'name': 'Боря', 'age': 25}]
oldest = max(people, key=lambda p: p['age'])   # словарь Ани

key говорит, по чему сравнивать, а возвращается сам элемент (целый словарь), а не значение ключа. Это частая путаница: max с key отдаёт не максимальный возраст, а человека с максимальным возрастом.

Главная ловушка — пустой список. max([]) падает с ValueError. Защититесь параметром default:

max(nums, default=0)   # вернёт 0, если список пуст

И ещё: не называйте переменные max или min — затрёте встроенные функции, и дальше в коде они перестанут работать.

Ваш ответ

, чтобы ответить на вопрос.