【Python】max()函数:返回可迭代对象或多个参数中的最大值

在 Python 中,max() 是一个非常常用的内置函数,用于返回给定可迭代对象或多个参数中的最大值。它可以作用于不同类型的数据,比如数字、字符串、列表等。

max() 函数的基本语法

max(iterable, *[, key, default])

或者

max(arg1, arg2, *args, [, key])

参数说明:

  • iterable:一个可迭代对象(如列表、元组、字符串等),max() 将返回该可迭代对象中的最大元素。
  • *arg1, arg2, args:若传入多个参数,max() 会返回这些参数中的最大值。
  • key:可选的关键字函数,用来根据指定的标准进行比较。key 必须是一个接受一个参数并返回可比值的函数。
  • default:可选的,如果 iterable 是空的,返回此默认值。如果没有提供 default 参数,且 iterable 为空,函数会抛出 ValueError

1. 传入可迭代对象

如果你传入一个可迭代对象(如列表、元组、字符串等),max() 会返回其中的最大值。

示例:在列表中查找最大值
numbers = [3, 5, 2, 8, 1]
print(max(numbers))  # 输出 8
示例:在字符串中查找最大字符
string = "hello"
print(max(string))  # 输出 'o'(字符 'o' 的 Unicode 值最大)

2. 传入多个参数

你也可以传入多个参数,max() 会返回其中的最大值。

示例:比较多个数字
print(max(1, 5, 3, 9, 2))  # 输出 9

3. 使用 key 参数

key 参数可以指定一个函数来对元素进行自定义的比较。该函数会作用于可迭代对象中的每个元素,并返回用于比较的值。
max() 函数作用在字典上时,key 参数指定的函数传入的参数是字典的

示例:根据字符串长度查找最大字符串
words = ["apple", "banana", "kiwi", "cherry"]
print(max(words, key=len))  # 输出 'banana'(因为 'banana' 的长度最大)
示例:根据绝对值查找最大数字
numbers = [-5, -2, 3, 8]
print(max(numbers, key=abs))  # 输出 8(绝对值最大)
示例: 根据字典的值进行比较

max() 函数作用在字典上时,key 参数指定的函数传入的参数是字典的

my_dict = {'a': 10, 'b': 20, 'c': 5}
print(max(my_dict, key=lambda k: my_dict[k]))  # 输出 'b'(值最大,20)

4. 使用 default 参数

当你传入一个空的可迭代对象时,如果你指定了 default 参数,max() 会返回该默认值,而不是抛出 ValueError

示例:空列表使用 default
empty_list = []
print(max(empty_list, default=0))  # 输出 0

如果没有指定 default 参数,传入空列表时会抛出错误:

print(max(empty_list))  # 会抛出 ValueError: max() arg is an empty sequence

总结

  • max() 可以接收一个可迭代对象或多个参数,并返回其中的最大值。
  • 可以使用 key 参数自定义比较标准,使用 default 参数避免空序列时报错。
  • 它支持各种类型的数据,如数字、字符串等,比较时依据其自然排序规则(如数值大小、字符串的字典顺序)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬彬侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值