在 Python2.7 中忽略没有 continue 语句的 IndexError
Posted
技术标签:
【中文标题】在 Python2.7 中忽略没有 continue 语句的 IndexError【英文标题】:Ignore an IndexError in Python2.7 without continue statement 【发布时间】:2018-08-17 10:37:32 【问题描述】:我在 for 循环中有一个 try 和 except 语句。我正在查看存储在(可能过于复杂)列表中的数据,该列表本身存储在 defaultdict 中。我期望 IndexErrors,但是当它们发生时,我根本不需要比较任何数据,所以我想忽略错误。这是我当前的代码:
for key, list_item in defdict.iteritems():
if len(list_item) == 2:
if len(list_item[0][1]) > 1 or len(list_item[1][1]) > 1:
compare00,compare01=[],[]
if another_list.__contains__(list_item[0][0]):
try:
for item in defdict.iteritems():
if item[1][0][0] == list_item[0][0]:
compare00.append(compare_function(item))
except IndexError:
continue
if another_list.__contains__(list_item[1][0]):
try:
for item in defdict.iteritems():
if item[1][1][0] == list_item[1][0]:
compare10.append(compare_function(item))
except IndexError:
continue
print compare00,compare10
#etc
我已经意识到continue
声明是不正确的。我的if
语句不必是互斥的,因此,既不去循环的下一次迭代(continue
)也不离开循环(break
)是合适的。没有continue
的空白except IndexError:
,即,是不正确的语法。我应该如何忽略错误?
【问题讨论】:
抱歉,如果不清楚。 “我不想继续前进”是指我想在循环的这次迭代中执行更多代码,因此既不需要break
也不需要 continue
。我已经相应地编辑了问题。
【参考方案1】:
使用pass
语句代替continue
语句
【讨论】:
甚至是任何有效代码但不会评估以更改任何内容break
会有所帮助
请参阅问题下方的评论 RE:break
。
这是我需要的答案。我以前只使用pass
作为占位符。没想到这里,但它工作得很好。信息:pass documentation【参考方案2】:
如果您想继续循环,请使用pass
而不是continue
。
如果您想停止循环,请使用break
而不是continue
。
【讨论】:
以上是关于在 Python2.7 中忽略没有 continue 语句的 IndexError的主要内容,如果未能解决你的问题,请参考以下文章
由于 continue 而忽略了数组 for 循环中的基本 else 语句