Python 中 ValueError: max() arg is an empty sequence 错误

当我们将空序列传递给 max() 函数时,会出现 Python“ValueError: max() arg is an empty sequence”。 要解决该错误,需要在调用 max() 函数时提供默认关键字参数,例如 result = max(my_list, default=0)。

下面是产生上述错误的示例代码

my_list = []

# ⛔️ ValueError: max() arg is an empty sequence
result = max(my_list)

Python 中 ValueError: max() arg is an empty sequence 错误

我们将一个空列表传递给导致错误的 max() 函数。

解决该错误的一种方法是在调用 max() 函数时提供默认关键字参数。

my_list = []

result = max(my_list, default=0)

print(result)  # 👉️ 0

如果 0 不适合我们的用例,我们还可以指定 None 值。

my_list = []

result = max(my_list, default=None)

print(result)  # 👉️ None

如果序列不为空,则返回最大值。

my_list = [10, 30, 20]

result = max(my_list, default=None)

print(result)  # 👉️ 30

我们还可以使用 try/except 块来处理错误。

my_list = []

try:
    result = max(my_list)
except ValueError:
    result = 0

print(result)  # 👉️ 0

max 函数返回可迭代对象中的最大项或两个或多个参数中最大的一个。

my_list = [15, 45, 30]

result = max(my_list)

print(result)  # 👉️ 45

该函数还可以传递两个或多个位置参数。

result = max(15, 45, 30)

print(result)  # 👉️ 45

该函数采用可选的默认关键字参数,用于指定在提供的可迭代对象为空时返回的值。

result = max([], default=0)

print(result)  # 👉️ 0

如果可迭代对象为空且未提供 default 关键字参数,则该函数会引发 ValueError。