序列的最小值和最大值

獲得序列的最小值(可迭代)等同於訪問 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

允許包含支援 <> 操作的任何可迭代元素。