python的for i in list 陷阱
来源:互联网 发布:披甲龙龟事件知乎 编辑:程序博客网 时间:2024/06/04 21:29
d = [1,2,3,4,5]for i in d: d.remove(i)print d
结果是 :
[2, 4]
这个陷阱比较隐蔽,我再用白盒子测试的时候,发现了这个bug,大致原因就是remove d[0]之后,i 自动变成了 d[1], 但是 d已经变成了 d[2,3,4,5],所以i=d[1]就悲催的指向了3,跳过了2!
看来python还是要注意了解底层实现啊!
解决办法是:
d = [1,2,3,4,5]temp = []for i in d[:]: d.append(i)print d
就可以实现边遍历边删除了
阅读全文
0 0
- python的for i in list 陷阱
- JavaScript for...in 循环的陷阱
- JavaScript for...in 循环的陷阱
- JavaScript for…in 循环的陷阱
- JavaScript中for..in循环的陷阱
- python中的for i in range
- java i++的陷阱
- javascript的for...in中的闭包陷阱
- Python list 边查询便删除的陷阱
- for in循环i的数据类型
- python列表解析([ x for x in list])
- for(int i=0;i<list.size();i++) 与 for(int i=0,len=list.size();i<len;i++)的区别
- JAVA中i++的陷阱
- sed -i 的使用陷阱
- JavaScript中for..in循环陷阱
- JavaScript中for..in循环陷阱介绍
- JavaScript中for..in循环陷阱介绍
- JavaScript中for..in循环陷阱介绍
- 基于动态代理的远程服务
- python一行代码
- 常见的优化方法总结(GD,SGD,SAG,SVRG,BFGS)
- 进程间通信
- leetcode 14, 38, 345
- python的for i in list 陷阱
- Spring4第一讲学习笔记,ioc编程思想
- 【斜率优化DP】BZOJ1010 [HNOI2008]玩具装箱toy
- SELinux syntax error问题定位
- Android集训第三天
- leetCode 刷题记录 Remove Nth Node From End of List
- 使用java读取文本文件的倒数第N行
- 快速排序
- 利用原型对原始对象的方法进行扩展(javascript面试题)