遍历n个元素的列表,每次循环时删除当前元素,那么要多少次结束循环呢。

上一段代码:

arr = [0,1,2,3,4]
for x in arr:
print('本次删除的元素:',x)
arr.remove(x)
print('当前列表内容: ',arr)
print('########in loop ########')
print('----- out loop ------')
print(arr)

结果如下:

本次删除的元素: 0
当前列表内容: [1, 2, 3, 4]
########in loop ########
本次删除的元素: 2
当前列表内容: [1, 3, 4]
########in loop ########
本次删除的元素: 4
当前列表内容: [1, 3]
########in loop ########
----- out loop ------
[1, 3]

当第一个下标为0的元素被删除后,后续元素依次补上来,原本下标为1的变为0。不过下一次循环对应的是下标为1的元素,这样新的下标为0的元素就被"跳"过了。
总结来说,对列表for循环时,并不是动态的根据列表实际元素挨个遍历的,而是按照列表初始的长度根据下标next下去的。

类似这样吧:

int c=len(list)
for(i=0; i<c; i++){
list(i);
}

另外,可能是因为字典和集合是无序的,不支持在循环的时候删除其中的元素:

RuntimeError: dictionary changed size during iteration
RuntimeError: Set changed size during iteration

最新文章

  1. 1Z0-053 争议题目解析700
  2. jstl中的sql:query标签获取的结果如何格式化输出
  3. 树莓派(Raspberry Pi)搭建简单的lamp服务
  4. Data Structures/Algorithms 小甲鱼99讲笔记系列(1~~15讲)
  5. How to create and apply a patch with Git
  6. linux--杂记(rework)
  7. zz---Tomcat服务器下部署项目几种方式
  8. 剖析简易计算器带你入门微信小程序开发
  9. Bootstrap页面布局16 - BS导航菜单和其响应式布局以及导航中的下拉菜单
  10. JMeter学习-016-思路篇之-山重水复柳暗花明
  11. (基础篇) php中0与空 Null false的区别
  12. ajax加php实现三级联动
  13. Android解决异常apk on device &#39;0292bea1&#39;: Unable to open sync connection!
  14. 在SQL Server中添加Linked Server 图解版
  15. CodeForces 707B Bakery
  16. [转载] Netty源码分析
  17. Socket实现聊天客户端
  18. 从一个例子了解window.onload、$(function(){})、$(window).load(function(){})的加载顺序
  19. (Review cs231n) Spatial Localization and Detection(classification and localization)
  20. Spring普通类/工具类获取并调用Spring service对象的方法

热门文章

  1. [OpenCV实战]45 基于OpenCV实现图像哈希算法
  2. BZOJ4919 大根堆(树形dp+线段树合并)
  3. 使用C语言编程的7个步骤
  4. [C++]我的理解之内存对齐
  5. Less常用功能使用
  6. for循环 rang方法
  7. 使用gm/ID方法设计二级运算放大器
  8. 解决微信小程序 自定义tabBar 切换时候闪烁问题
  9. java入门与进阶 P-2.5+P-2.6
  10. Java 进阶P-4.2+P-4.3