如何跳过列表索引超出范围错误而不是立即停止代码?
Posted
技术标签:
【中文标题】如何跳过列表索引超出范围错误而不是立即停止代码?【英文标题】:How does one skip a list index out of range error rather than stop the code immediately? 【发布时间】:2020-04-22 14:39:09 【问题描述】:一旦我将中心与列表的元素进行比较,我经常会得到列表索引超出范围的错误。但是,我认为这意味着代码会简单地忽略丢失的内容并运行代码,但事实并非如此。我该如何做到这一点?
代码如下:
import random
def cons(lst):
print(lst)
smoll = []
big = []
a = random.randint(0, len(lst)-1)
print(a)
center = lst[a]
print(center)
lst.remove(center)
print(lst)
for y in range(len(lst) - 1):
if len(lst) > 0:
if lst[y] > center:
big += [lst[y]]
elif lst[y] < center:
smoll += [lst[y]]
lst.remove(lst[y])
if len(lst) > 0:
return False
finaLst = cons(smoll) + [center] + cons(big)
if finaLst[len(finaLst) - 1] - finaLst[0] == len(finaLst):
return True
【问题讨论】:
您可以使用try
& except
处理IndexError
(和其他)异常。
【参考方案1】:
生成 IndexError 的 for 循环写得不好,我会说这不是在从该列表中删除元素时迭代循环的最佳方法,这里是您的 for 循环块的等效代码,以避免索引错误:
for item in lst:
if item > center:
big.append(item)
elif item < center:
smoll.append(item)
if len(big) + len(smoll) < len(lst):
return False
【讨论】:
以上是关于如何跳过列表索引超出范围错误而不是立即停止代码?的主要内容,如果未能解决你的问题,请参考以下文章
Python:出现“列表索引超出范围”错误;我知道为啥但不知道如何解决