如果特定索引缺少元素,如何回退

时间:2013-01-24 11:42:12

标签: python

如果数组的某个索引中没有元素,是否可以回退到空值

foo_val = int(data_arr[3])

IndexError:列表索引超出范围

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

替代尝试除了:

它的一行而不是4行,并且仍然可读:

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

请注意len不是零索引,因此> = 4而不是> = 3

答案 2 :(得分:0)

您可以使用defaultdict模块中的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执行此操作,方法是使用get方法提供默认值,但defaultdict稍微方便一点。