0 Минимум и максимум последовательности

Получение минимума последовательности (Iterable) является эквивалентом доступа к первому элементу в sorted последовательностях:

 min([2, 7, 5])
# Output: 2
sorted([2, 7, 5])[0]
# Output: 2

 

Максимум является немного более сложной, потому что sorted сохраняет порядок и max возвращает первое значение встречается. В случае отсутствия дубликатов максимум совпадает с последним элементом отсортированного возврата:

 max([2, 7, 5])
# Output: 7
sorted([2, 7, 5])[-1]
# Output: 7

 

Но нет, если есть несколько элементов, которые оцениваются как имеющие максимальное значение:

 class MyClass(object):
    def __init__(self, value, name):
        self.value = value
        self.name = name

    def __lt__(self, other):
        return self.value < other.value

    def __repr__(self):
        return str(self.name)

sorted([MyClass(4, 'first'), MyClass(1, 'second'), MyClass(4, 'third')])
# Output: [second, first, third]
max([MyClass(4, 'first'), MyClass(1, 'second'), MyClass(4, 'third')])
# Output: first

 

Любая итерация , содержащие элементы , которые поддерживают < или > операции разрешены.