1. ホーム
  2. python

[解決済み] 空のリストに対する安全なmax()関数

2023-08-08 18:53:44

質問

評価中です。

max_val = max(a)

とすると、エラーが発生します。

ValueError: max() arg is an empty sequence

このエラーを回避するために try , except をキャッチしてください。

a = []
try:
    max_val = max(a)
except ValueError:
    max_val = default 

どのように解決するのですか?

Python 3.4以降では default キーワード引数 :

>>> max([], default=99)
99

下位バージョンでは or :

>>> max([] or [99])
99

注意: 2番目のアプローチは、すべてのイテレータに対して有効ではありません。 特に、考慮された真値以外何も得られないイテレータに対しては。

>>> max(iter([]) or 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: max() arg is an empty sequence