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

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

下面是一个产生上述错误的示例

my_list = []

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

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

我们向导致错误的 min() 函数传递了一个空列表。

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

my_list = []

result = min(my_list, default=0)

print(result)  # 👉️ 0

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

my_list = []

result = min(my_list, default=None)

print(result)  # 👉️ None

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

my_list = [3, 5, 8]

result = min(my_list, default=None)

print(result)  # 👉️ 3

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

my_list = []

try:
    result = min(my_list)
except ValueError:
    # 👉️ handle error here
    result = 0

print(result)  # 👉️ 0

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

my_list = [10, 5, 20]

result = min(my_list)

print(result)  # 👉️ 5

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

result = min(10, 5, 20)

print(result)  # 👉️ 5

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

result = min([], default=0)

print(result)  # 👉️ 0

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