在不使用继续语句的情况下忽略Python2.7中的IndexError

时间:2018-08-17 10:37:32

标签: python python-2.7 ignore continue try-except

我在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)都是不合适的。没有except IndexError:的空白continue,即是不正确的语法。我应该如何忽略该错误? 谢谢, 戴夫。

2 个答案:

答案 0 :(得分:4)

使用pass语句代替continue语句

答案 1 :(得分:2)

如果要继续循环,请使用pass而不是list.files() [1] "a.txt" "b.txt"
如果要停止循环,请使用break而不是continue