0

配列の特定のインデックスに要素がない場合、空の値にフォールバックする方法はありますか

foo_val = int(data_arr[3])

IndexError: リスト インデックスが範囲外です

4

3 に答える 3

1

とを使用tryexceptます。

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
于 2013-01-24T11:45:30.437 に答える
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 の方が少し便利です。getdefaultdict

于 2013-01-24T12:19:44.703 に答える
0

代わりに試してみてください:

4 行ではなく 1 行で、まだ読み取り可能です。

foo_val = int(data_arr[3]) if len(data_arr) >= 4 else 0

lenインデックスがゼロではないため、>=3 ではなく >=4 であることに注意してください

于 2013-01-24T11:46:06.017 に答える