序列的最小值和最大值
获得序列的最小值(可迭代)等同于访问 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
允许包含支持 <
或 >
操作的任何可迭代元素。