假设有一个名为“ my_list
”的列表和一个名为“ list_index
”的int变量。基本上,列表“ my_list
”可能会随时间变化,因此“ list_index
”可能会引发“ IndexError: list index out of range
”。但是,我只想在发生此错误时进行记录,因为它并不那么重要。为避免此错误,我目前的基本解决方案是:
# My first way
if my_list[list_index: list_index +1]:
print('item exists')
else:
print('item does not exist')
# My second way
if -len(my_list) <= list_index < len(my_list):
print('item exists')
else:
print('item does not exist')
除了try / except语句外,还有其他解决方案可以避免“ IndexError:列表索引超出范围”错误吗?
答案 0 :(得分:1)
您可以使用try-except。
a = [1,2,3]
try:
print(a[4])
except IndexError:
pass
答案 1 :(得分:0)
在这种情况下,我们可以做的是知道可能发生的错误,因此我们将易于发生错误的语句封装在try
内,并添加带有错误的except
块键入我们定义程序遇到错误时应采取的措施。
它的一般语法是
try:
# statements that can possibly cause an error
except error_type:
# what to do if an error occurred
所以在这里您提到的错误是IndexError
,它在运行时捕获了索引不足异常。因此,一种简洁而有效的方法如下。
try:
index_value = my_list[list_index]
except IndexError:
index_value = -1
print('Item index does not exist')
答案 2 :(得分:0)
使用range(len(LIST)-1):
for i in range(len(LIST)-1):
if LIST[i] < LIST[i+1]:
... # you got an idea; no index error since range(len(LIST)-1)