欢迎访问宙启技术站
智能推送

Python中使用max()和min()函数求最值

发布时间:2023-06-30 23:11:53

Python中的max()和min()函数是求一个可迭代对象中的最大值和最小值。

max()函数的用法是:max(iterable[, key=func, default=obj]),其中iterable表示可迭代对象,key是一个函数用来指定比较的键值,默认为None,default是一个指定当iterable为空时,返回的默认值,默认为None。

例如:

numbers = [1, 3, 2, 5, 4]
max_number = max(numbers)
print(max_number)  # 输出:5

string = "abc"
max_char = max(string)
print(max_char)  # 输出:c

empty_list = []
default_value = max(empty_list, default="Empty list")
print(default_value)  # 输出:Empty list

min()函数的用法与max()函数类似,只是求的是最小值。

numbers = [1, 3, 2, 5, 4]
min_number = min(numbers)
print(min_number)  # 输出:1

string = "abc"
min_char = min(string)
print(min_char)  # 输出:a

empty_list = []
default_value = min(empty_list, default="Empty list")
print(default_value)  # 输出:Empty list

可以看到,max()和min()函数可以直接应用于数字、字符串等可比较的对象,也可以通过指定key函数来进行比较。另外,当可迭代对象为空时,可以通过default参数来指定返回的默认值。

需要注意的是,如果要比较的对象不是可直接比较的,需要通过指定key函数来进行转换。例如,如果要比较一个对象的某个属性或者方法的返回值,可以使用lambda函数来指定key参数。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

people = [Person("Alice", 25), Person("Bob", 18), Person("Charlie", 30)]
min_age_person = min(people, key=lambda p: p.age)
print(min_age_person.name)  # 输出:Bob

在上面的例子中,通过指定key=lambda p: p.age,可以比较people列表中每个Person对象的age属性,返回年龄最小的Person对象。

总结来说,max()和min()函数是Python中求最大值和最小值的常用函数,它们可以方便地应用于数字、字符串等可比较的对象,也可以通过指定key函数来进行比较,同时支持设置默认值。