簡體   English   中英

列表索引超出范圍:我不知道如何解決

[英]List index out of range: I don't know how to solve it

我不知道如何解決這個錯誤

有代碼:

     for i in range(len(oldsize)):   
          if hitboxx[0] == oldsize[i+1]:       #list index out of range
               print("Some TEXTeeeeeeeeeeeeeeeeeeeeeeeeeeee")
          print(i)
          print(oldsize[i])

您以以下格式為枚舉(oldsize [1:])中的i,j輸入for循環:

其中i是索引,而j是該索引處的值,此代碼將從第二個值中獲取結果,而第一個值則保留,因為我們定義它從舊大小列表中的索引1中獲取值

如果i位於oldsize的最后一項, oldsize只需在索引i+1之前添加大小檢查,這意味着i+1將是“過去的一項”而不存在。

 for i in range(len(oldsize)):   
      if i + 1 < len(oldsize) and hitboxx[0] == oldsize[i+1]:
           print("Some TEXTeeeeeeeeeeeeeeeeeeeeeeeeeeee")
      print(i)
      print(oldsize[i])

或者,您可以緩存oldsize的第一個項目,並將其與for循環中的項目進行比較,然后更新緩存的項目以使用for循環進行。 另外,您可以使用enumerate來訪問索引和該索引處的項目。

lastItem = oldsize[0]
for i, item in enumerate(oldsize[1:]):    # iterate starting with the second element
    if hitboxx[0] == item:
        print("Some TEXTeeeeeeeeeeeeeeeeeeeeeeeeeeee")
    print(i)
    print(lastItem)
    lastItem = item

想象一下,您的列表包含5元素。 它的長度將是5 ,索引從04

for i in range(len(oldsize)):

這將檢查索引i04 如果要求元素i+1 ,則最后一個i+1將是5 ,超出范圍。

要對此進行補救,請不要重復進行i=3以上的迭代。 您需要這樣做:

for i in range(len(oldsize) - 1):

暫無
暫無

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

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