Python列表.删除()跳过lis中的下一个元素

2024-04-20 01:14:27 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

其他人解释说,不应该从正在迭代的数组中删除元素;但是,如果向后遍历数组,就没有问题。在

解决这个问题的最简洁的方法(假设完成后不需要原始数组的副本)是使用reversed()函数,如

for square in reversed(squares)

这将从数组的末尾开始迭代,并向后进行。以这种方式取出元素不会影响代码的其余部分,因为您不会更改尚未访问的元素的顺序。我认为这是解决这个问题最优雅的方法。我学会了这个诀窍here

您正在从列表中删除,同时对其进行迭代。这不是个好主意。
还有其他方法可以完成您正在尝试的操作,其中之一是跟踪要从列表中删除的所有项的列表索引,然后将它们从for循环中删除

语句for square in squares只按顺序访问列表中的每一项:squares[0],然后squares[1],然后squares[2],依此类推,直到它用完正方形为止。在

删除squares[0]会将列表中的所有其他项移到左边一个槽;原来的squares[1]现在是squares[0],因此for循环将跳过它。在

相关问题 更多 >