簡體   English   中英

為什么它返回 IndexError: list index out of range 當索引存在時?

[英]Why it returns IndexError: list index out of range when index exists?

問題通過鏈接顯示

給定一個由數字 0 和 1 組成的矩陣,我試圖找到只包含 1 的正方形的最大尺寸。

我的代碼

如果我編寫上面的代碼,我會得到 IndexError: list index out of range。 但是,如果我將第 34 行中的代碼更改為if arr[i-1][j-1] == '1': ,則它可以工作。

我的問題是這是怎么發生的? 我檢查了arr中item的類型,都是int類型,那為什么我寫if arr[i-1][j-1] == 1:時候不行呢? 任何答案都會有所幫助,提前致謝。

dp只有 1 行包含(rows+1) * (cols+1)零,而不是包含cols+1零的rows+1行。 因此,每當您使用i >= 1訪問dp[i] ,您都會收到錯誤消息。

它應該是:

dp = [[0 for i in range(cols+1)] for j in range(rows+1)]

或者更簡單

dp = [[0] * (cols+1) for _ in range(rows+1)]

暫無
暫無

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

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