所以我在一个介绍编程类,我有一个任务,我需要接受一个列表作为参数,然后返回一个列表,其中只包含第一个列表中可被6整除的VAL。这个类使用Python,这是我认为应该起作用的,但是我一直得到一个错误。在
def youAndThe6th(nums):
numsNew = []
for x in nums:
if nums[x]%6 ==0:
numsNew.append(nums[x])
return numsNew
然后当我运行类似于:
^{pr2}$我得到并错误地说“索引器错误:索引超出范围:4”。4等于1加上最后一个指数。所以我知道它试图检查和索引不在列表中的内容,我只是不知道我的代码试图调用给定字符串的最后一个索引。在
谢谢!在
首先,python列表是零索引的,即它们从0开始
修改代码:
修改的代码范围:
^{pr2}$或者我们可以用列表理解来简化我的观点
注意事项:
values = [ 1 , 2 , 3 , 4] index = 0 , 1 , 2 , 3
所以当你迭代列表时,你得到了值4,你得到了nums[x] == nums[4]
,因为列表的索引只有3,它抛出IndexError: index out of range: 4
你的问题在第四行。而不是
你应该有
^{pr2}$所发生的是for语句已经给了存储在列表中的值(如x)。然后尝试获取列表的第x个值,在您的示例中,列表只有4个值,因此请求值4超出范围(因为python开始以0计数)。在
相关问题 更多 >
编程相关推荐