[英]IndexError: index out of range: 5
因此,我在一個入門編程類中,我有一個分配,需要在其中添加一個列表作為參數,然后返回一個列表,其中僅包含第一個列表中可被6整除的值。該類使用Python,是我認為應該正常工作的內容,但我一直遇到錯誤。
def youAndThe6th(nums):
numsNew = []
for x in nums:
if nums[x]%6 ==0:
numsNew.append(nums[x])
return numsNew
然后當我運行類似的東西時:
youAndThe6th([1,2,3,4])
我收到錯誤提示“ IndexError:索引超出范圍:4”。 而4只是1加最后一個索引。 因此,我知道它正在嘗試檢查和索引不在列表中的內容,只是看不到我的代碼正在嘗試調用給定字符串的最后一個索引。
謝謝!
首先,第一個python列表的索引為零,即它們從0開始
修改后的代碼:
def youAndThe6th(nums):
numsNew = []
for x in nums:
if x%6 ==0:
numsNew.append(x)
return numsNew
修改后的代碼范圍:
def youAndThe6th(nums):
numsNew = []
for x in range(len(nums)):
if x%6 ==0:
numsNew.append(x)
return numsNew
或者我們可以使用列表理解使事情變得更容易
numsNew =[x for x in nums if x%6 == 0]
筆記:
values = [ 1 , 2 , 3 , 4] index = 0 , 1 , 2 , 3
因此,當您遍歷列表時,得到的值是4並且執行了nums[x] == nums[4]
因為列表只有最多3個索引,所以它拋出IndexError: index out of range: 4
您的問題在第4行。
if nums[x]%6 == 0:
你應該有
if x%6 == 0:
發生的情況是您的for語句已經為您提供了存儲在列表中的值(以x表示)。 然后,您嘗試獲取列表的第x個值,在您的情況下,您的列表僅包含4個值,因此要求值4超出范圍(因為python從0開始計數)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.