配列の特定のインデックスに要素がない場合、空の値にフォールバックする方法はありますか
foo_val = int(data_arr[3])
IndexError: リスト インデックスが範囲外です
配列の特定のインデックスに要素がない場合、空の値にフォールバックする方法はありますか
foo_val = int(data_arr[3])
IndexError: リスト インデックスが範囲外です
とを使用try
しexcept
ます。
try: # Try doing this piece of code
foo_val = int(data_arr[3])
except IndexError: # If there is an IndexError, do this piece of code.
foo_val = 0
モジュールdefaultdict
からa を使用できます:collections
dd = collections.defaultdict(int) # default to zero, change as needed
for n, x in enumerate(data_arr):
dd[n] = x
dd[len(data_arr) + 10] # IndexError for data_arr, returns 0 with defaultdict
メソッドを使用してデフォルト値を提供することdict
により、a だけでこれを行うこともできますが、 a の方が少し便利です。get
defaultdict
代わりに試してみてください:
4 行ではなく 1 行で、まだ読み取り可能です。
foo_val = int(data_arr[3]) if len(data_arr) >= 4 else 0
len
インデックスがゼロではないため、>=3 ではなく >=4 であることに注意してください