如果数组的某个索引中没有元素,有没有办法回退到空值
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
替代尝试,除了:
它是一行而不是 4 行,并且仍然可读:
foo_val = int(data_arr[3]) if len(data_arr) >= 4 else 0
请注意,len
它不是零索引,因此 >=4 而不是 >=3
您可以使用模块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
您也可以只使用 a 来执行此操作,方法dict
是使用get
提供默认值的方法,但 adefaultdict
更方便一些。