Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.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中特定的for循环_Python_Loops_For Loop_Iteration - Fatal编程技术网

理解Python中特定的for循环

理解Python中特定的for循环,python,loops,for-loop,iteration,Python,Loops,For Loop,Iteration,当我执行这段代码时,控制台输出是[4,8,12] 我对这段代码的理解是,如果[A]中的任何元素都可以被2整除,那么我们将它们从列表中删除。在上面的列表中,所有元素实际上都可以被2整除,但只删除了2、6和10。有人想解释为什么没有删除4、8和12吗?在迭代时从列表中删除元素会把迭代搞砸。您应该使用筛选函数或列表理解 A = [2,4,6,8,10,12] for a in A: if a%2 == 0: # If 2 divides a, remove a from A A.r

当我执行这段代码时,控制台输出是[4,8,12]


我对这段代码的理解是,如果[A]中的任何元素都可以被2整除,那么我们将它们从列表中删除。在上面的列表中,所有元素实际上都可以被2整除,但只删除了2、6和10。有人想解释为什么没有删除4、8和12吗?

在迭代时从列表中删除元素会把迭代搞砸。您应该使用筛选函数或列表理解

A = [2,4,6,8,10,12]

for a in A:
    if a%2 == 0:  # If 2 divides a, remove a from A
    A.remove(a)

    print(A)