python for循环异常
一、疑难杂症 写工具代码时遇到的问题,简化一下如上图片所示。根据a1剔除a2内的元素,结果输出了一个没剔除干净的a2。顿时陷入迷茫。于是,决定一探究竟。 二、探寻原因 此前一直以为,执行for循环时,会把所有元素一次性放入循环体,后续不再动态的每一次都访问可迭代对象。 首先,我们来解析一下for循环的执行过程。执行for循环时,主要有一下三个步骤: 1)调用内置函数iter()函数获得一个迭代器 2)重复调用内置函数next()函数从上一个步骤里的迭代器中获取元素 3)当遇到StopIteration异常时,退出循环。 所以,到这里问题就明显了,for循环先把可迭代对象转化为迭代器,再调用n
用户评论