千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Pythonmax函数:获取列表中的最大值

Pythonmax函数:获取列表中的最大值

来源:千锋教育
发布人:xqq
时间: 2023-07-21 16:39:19 1689928759

一、max函数的基本用法

在Python中,max()是一个内置函数,它可以用来找出给定列表中的最大值,支持任何可迭代的对象。使用方法非常简单,其参数为可迭代对象,并返回其中元素的最大值。例如下面的代码:


numbers = [3, 9, 1, 5]
max_number = max(numbers)
print(max_number) # 9

代码中,我们首先定义了一个包含4个数字的列表,然后使用max()函数找到了其中最大的数字,并将其存储在max_number变量中,最后输出结果为9。这说明max()函数在找到列表中的最大值时非常方便。

二、max函数的高级用法

除了简单的查找列表中的最大值外,max()函数还具有许多高级用法。其中最常见的是通过参数key指定一个函数来忽略元素中的某些值。例如,我们有一个包含大小写字母的字符串列表,需要找到其中字典顺序最大的元素,可以这样实现:


words = ["apple", "Banana", "pear", "oRaNge"]
max_word = max(words, key=lambda word: word.lower())
print(max_word) # pear

在这个例子中,我们首先定义了一个包含4个字符串元素的列表,然后使用key参数指定lambda函数作为比较方式。lambda函数将字符串转换为小写,并返回其字典顺序最大的字符。由于有了key参数的设置,因此结果列表中的顺序与大小写无关,最终输出结果为pear。

三、max函数在自定义对象中的使用

max()函数同样可以用于自定义对象的比较中,例如我们有一个包含不同人的信息的列表,需要找到年龄最大的人,可以这样实现:


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

    def __repr__(self):
        return 'Person(name={}, age={})'.format(self.name, self.age)

people = [
    Person('Tom', 24),
    Person('Alice', 29),
    Person('Bob', 27),
    Person('Jerry', 22)
]
oldest_person = max(people, key=lambda person: person.age)
print(oldest_person) # Person(name=Alice, age=29)

这个例子中,我们首先定义了一个Person类,每个对象都包含名称和年龄属性,并且实现了__repr__方法用于打印。然后我们定义了一个包含4个Person对象的列表,然后我们使用key参数指定了一个lambda函数来比较列表中的每个Person对象,以找到其中年龄最大的对象。最终输出结果为Person(name=Alice, age=29)。

四、总结

Python中的max()函数可以用于查找列表中的最大值,并且支持忽略元素的比较方式。此外,max()函数同样也可以用于自定义对象的比较中,以找到其中的最大值。如果需要查找最小值,则可以使用min()函数。在日常开发中,这两个函数经常用到,是我们必须掌握的基本操作之一。

tags: python教程
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT