Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 索引器:索引超出范围:5_Python - Fatal编程技术网

Python 索引器:索引超出范围:5

Python 索引器:索引超出范围:5,python,Python,因此,我在一个简介编程类中,我有一个赋值,我需要将一个列表作为参数,然后返回一个列表,其中只有第一个列表中可以被6整除的VAL。这个类使用Python,我认为这应该是可行的,但是我一直得到一个错误 def youAndThe6th(nums): numsNew = [] for x in nums: if nums[x]%6 ==0: numsNew.append(nums[x])

因此,我在一个简介编程类中,我有一个赋值,我需要将一个列表作为参数,然后返回一个列表,其中只有第一个列表中可以被6整除的VAL。这个类使用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: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]