Функция max() в Python — как работает и примеры
В данном руководстве рассмотрим, как использовать функцию Python max() для возврата максимального элемента итерируемого объекта или максимального аргумента из двух или более аргументов.
- Что такое функция max() в Python?
- Примеры функции Python max()
- 1) Нахождение максимального аргумента из нескольких
- 2) Поиск максимального элемента итерируемого объекта
Что такое функция max() в Python?
Функция max() возвращает максимальный аргумент из двух или более аргументов:
max(arg1,arg2,*args[,key])
В этом синтаксисе:
- arg1, arg2, .. — входные аргументы.
- key — необязательный параметр, содержащий только ключевое слово, который указывает ключ для сравнения аргументов. Он похож на key в функции sort().
Функция max() также принимает итерируемый объект и возвращает максимальный элемент итерируемого объекта:
max(iterable, *[, key, default])
В этом синтаксисе:
- iterable — это итерируемый вход.
- key — необязательный аргумент, содержащий только ключевое слово, который указывает ключ для сравнения элементов итерируемого объекта.
- default — необязательный аргумент, состоящий только из ключевых слов, который указывает значение, которое max() возвращает, когда итерируемый объект пуст. Если итерируемый объект пуст и аргумент по умолчанию недоступен, функция max() вызывает исключение ValueError.
Если несколько элементов являются максимальными, функция max() вернет первый встреченный элемент.
Примеры функции Python max()
Давайте рассмотрим несколько примеров использования функции Python max().
1) Нахождение максимального аргумента из нескольких
В следующем примере функция max() используется для получения наибольшего числа:
result = max(1, 2, 3) print(result) # 3
Если вы передадите несколько строковых аргументов, функция max() вернет максимальную строку в алфавитном порядке:
result = max('John', 'Alice', 'Jane') print(result) # John
В следующем примере показано, как использовать функцию max() с пользовательскими объектами:
class Employee: def __init__(self, name, salary): self.name = name self.salary = salary def __str__(self): return f'Name:{self.name}, salary:{self.salary:,}' result = max( Employee('John', 210_000), Employee('Alice', 220_000), Employee('Jane', 200_000), key=lambda p: p.salary ) print(result)
Выход:
Name:Alice, salary: 220,000
Как это работает.
- Сначала определите класс Employee с двумя атрибутами: name и salary:
class Employee: def __init__(self, name, salary): self.name = name self.salary = salary def __str__(self): return f'Name:{self.name}, salary:{self.salary:,}'
- Во-вторых, используйте функцию max(), чтобы найти сотрудника с самой высокой зарплатой:
result = max( Employee('John', 210_000), Employee('Alice', 220_000), Employee('Jane', 200_000), key=lambda p: p.salary )
Помимо передачи объектов Employee, мы также указываем salary в качестве ключа для сравнения объектов.
2) Поиск максимального элемента итерируемого объекта
В следующем примере функция max() используется для поиска наибольшего числа в списке:
scores = [1, 5, 3, 2] max_score = max(scores) print(max_score) # 5
Аналогично, в этом примере функция max() используется для поиска человека с максимальным именем в алфавитном порядке:
names = ['John', 'Alice', 'Jane'] name = max(names) print(name) # John
В этом примере показано, как использовать функцию max() для поиска сотрудника с самой высокой зарплатой из списка сотрудников:
class Employee: def __init__(self, name, salary): self.name = name self.salary = salary def __str__(self): return f'Name:{self.name}, salary:{self.salary:,}' employees = [ Employee('John', 210_000), Employee('Alice', 220_000), Employee('Jane', 200_000), ] result = max(employees, key=lambda p: p.salary) print(result)
Выход:
Name:Alice, salary:220,000
В этом примере мы передаем список объектов Employee и используем функцию max(), чтобы найти сотрудника с самой высокой зарплатой.