`max()` 是 Python 内置函数之一,在给定的可迭代对象中返回最大值。
语法:`max(iterable, *[, key, default])`
参数说明:
- `iterable`: 必需,表示一个可迭代对象;
- `*`: 表示后面还可以跟零个或多个参数;
- `key`: 可选,是一个函数,用于指定比较的关键字;
- `default`: 可选,如果给定可迭代对象为空时,则返回该值。
例子:
```python
>>> numbers = [1, 2, 3, 4, 5]
>>> max_number = max(numbers)
>>> print(max_number)
5
>>> students = [("Amy", 20), ("Tom", 18), ("Lucy", 22)]
>>> oldest_student = max(students, key=lambda student: student[1])
>>> print(oldest_student[0])
'Lucy'
```
在第二个例子中,我们通过 `key` 参数传递了一个 lambda 函数,用于指定比较的条件为元组的第二个元素。这样,函数会找到学生中年龄最大的那个,即 ('Lucy', 22),然后我们使用取下标的方式获取其名字。
`lambda` 函数是一个可以在一行内定义并使用的简单函数,也被称为匿名函数。它支持传递任意数量的参数,并且只能包含一个表达式,该表达式作为函数的返回值。
语法: `lambda arguments: expression`
其中:
- `arguments` 是一个或多个函数的参数,用逗号隔开;
- `expression` 是由参数构成的表达式,是 `lambda` 函数的返回值。
例子:
```python
# 定义常规函数
def add(x, y):
return x + y
# 使用 lambda 定义函数
add_lambda = lambda x, y: x + y
# 调用函数
result = add(2, 3)
print(result) # 输出 5
result_lambda = add_lambda(2, 3)
print(result_lambda) # 输出 5
```
在上述例子中,我们演示了如何使用 `def` 关键字定义一个常规函数 `add` 和使用 `lambda` 定义一个具有相同功能的简单函数 `add_lambda`。两者都接受两个参数并返回它们的和,但是 `lambda` 函数在更短的代码行上实现了相同的功能。`lambda` 函数通常用于需要临时定义和使用简单函数的场景,而不必显示地编写完整的函数定义。
例题
names = ["Ann", "Charlotte", "John", "Bill","AngelaBaby"] 要求输出人物名字最长的字符串。 以下哪个程序段是正确的?
A longest = max(names, key = length)
B longest = min(names, key = len,reverse=True)
C longest = max(names, key = len)
D longest = max(names)
可以正确输出人物名字最长的字符串的程序是 C,即:
```
longest = max(names, key=len)
```
解释:我们需要比较每个字符串及其长度,找到最长的字符串。`max()` 函数用于寻找可迭代对象中指定条件(如值、长度等)的最大元素。在本例中,我们使用了 `key=len` 参数来指定比较的条件为字符串的长度。因此,上述代码可以返回 names 列表中的最长字符串。