Python 索引器:索引超出范围:5
因此,我在一个简介编程类中,我有一个赋值,我需要将一个列表作为参数,然后返回一个列表,其中只有第一个列表中可以被6整除的VAL。这个类使用Python,我认为这应该是可行的,但是我一直得到一个错误Python 索引器:索引超出范围:5,python,Python,因此,我在一个简介编程类中,我有一个赋值,我需要将一个列表作为参数,然后返回一个列表,其中只有第一个列表中可以被6整除的VAL。这个类使用Python,我认为这应该是可行的,但是我一直得到一个错误 def youAndThe6th(nums): numsNew = [] for x in nums: if nums[x]%6 ==0: numsNew.append(nums[x])
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:index超出范围:4。4等于1加上最后一个指数。所以我知道它试图检查和索引列表中没有的内容,我只是不知道我的代码试图调用给定字符串的最后一个索引
谢谢 第一个python列表的第一件事是零索引,即它们从0开始 修改代码: 修改的代码范围为: 或者在我看来,我们可以使用列表理解使事情变得更简单
numsNew =[x for x in nums if x%6 == 0]
注:
当你在一个列表中循环时,你实际上是在它的内容上循环,而不是在它的索引上循环,如果你想要它的索引,你可以使用range
您的列表有四个元素
值=[1,2,3,4]
索引=0,1,2,3
因此,当您在列表上进行迭代时,您得到了值4,并且执行了nums[x]==nums[4],因为列表的索引最多只有3个,它会将indexer:index抛出范围之外:4
第一个python列表的第一件事是零索引,即它们从0开始 修改代码: 修改的代码范围为: 或者在我看来,我们可以使用列表理解使事情变得更简单
numsNew =[x for x in nums if x%6 == 0]
注:
当你在一个列表中循环时,你实际上是在它的内容上循环,而不是在它的索引上循环,如果你想要它的索引,你可以使用range
您的列表有四个元素
值=[1,2,3,4]
索引=0,1,2,3
因此,当您在列表上进行迭代时,您得到了值4,并且执行了nums[x]==nums[4],因为列表的索引最多只有3个,它会将indexer:index抛出范围之外:4
你的问题在第四行。而不是
if nums[x]%6 == 0:
你应该有
if x%6 == 0:
发生的情况是,for语句已经将列表中存储的值作为x提供给您。然后尝试获取列表的第X个值,在您的示例中,列表只有4个值,因此请求值4超出范围,因为python开始以0计数。您的问题在第4行。而不是
if nums[x]%6 == 0:
你应该有
if x%6 == 0:
发生的情况是,for语句已经将列表中存储的值作为x提供给您。然后,您尝试获取列表的第x个值,在您的示例中,列表只有4个值,因此请求值4超出范围,因为python开始以0计数。YouAndE6th=lambda x:[y代表y,如果y%6==0]YouAndE6th=lambda x:[y代表y,如果y%6==0]