簡體   English   中英

在這種情況下如何解決列表索引超出范圍的錯誤?

[英]how to fix list index out of range error in this case?

填字游戲的垂直求解功能, if crosswords[num]==None的比率,則程序給出列表索引超出范圍

提供該語句以消除此類錯誤

def find_word_vertical(crosswords,word):
    word_list=[i for i in word]
    l=len(word_list)
    index=[]
    for col in range(len(crosswords[0])):
        for row in range(len(crosswords)):
            if word_list[0]==crosswords[row][col]:
                num=row
                ok=True
                for ch in range(l):
                    if crosswords[num]==None:
                        break
                        ok=False
                    else:
                        if word_list[ch]==crosswords[num][col]:
                            num+=1
                        else:
                            ok=False
                if ok:
                    return [row,col]
    return None

我找不到錯誤,因為該程序針對某些示例測試用例運行,但錯誤顯示在未知的測試用例上。 由於出現“索引不足”錯誤,因此確切的測試用例不會出現在屏幕上。 示例問題= find_word_vertical([['s','d','o','g'],['c','u','c','m'],['a','c','a','t'],['t','e','t','k']],'cat')

if crosswords[num]==None:
    break
    k=False

該陳述是錯誤的,正確的陳述是:

if num>=len(crosswords):
    k=False
    break

如果元素在列表中不存在,則它不會返回None而是一個錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM