python:在for遍历list时使用remove出现的问题以及解析(转)
2017-09-01 10:48
585 查看
原文地址:http://blog.csdn.net/circle2015/article/details/64444300 最近面试时,面试官在纸上写了几行代码,说是很简单的问题,我看后直接懵逼。。。如下:
a=[1,2,3,4,5] for i in a: a.remove(i) print a
问我打印出的a结果是啥,好吧,的确是我学艺不精,回答了a=[],当时尴尬的要死,回来后敲了一遍,结果让我直接懵逼,结果如下下:
后来网上查了查,原来几年前就有人进行过解析,但是我还是按照自己的走一遍吧,参考链接如下
http://blog.sina.com.cn/s/blog_678b56660102w6tp.html
1、remove解释
remove方法用于移除列表中某个值的第一个匹配项:>>>x=['to','be','or','not','to','be'] >>>x.remove('be') >>>x ['to','or','not','to','be']
2、最开始的那个结果解释:
按照平常理解,应该删除所有内容,可偏偏没有,因为具体过程如下:1、当第一次删除后,后面的元素会前移,此时a=[2,3,4,5],
2、然后指针下一次会指向新列表的第二个元素(即初始状态的第三个位置),从而初始状态的第二个位置被跳过了,初始第三个位置被删除,接着后面的元素又再次前移(变成[2,4,5])
3、指针指向新列表的第三个元素,即初始状态的第5个元素5,然后5被删除了,因此只剩下[2,4]
画图如下所示:
或者程序打印看一下:
相关文章推荐
- python:在for遍历list时使用remove出现的问题以及解析
- python2.6使用mysql包出现的一些问题以及解决办法
- 解决vuejs 使用value in list 循环遍历数组出现警告的问题
- 编译busybox时使用make menuconfig命令出现下列问题:recipe for target 'scripts/kconfig/lxdialog/checklist.o' failed
- python 解析xml,并修改,插入标签。以及出现ns0的问题,和缩进问题。
- Python3出现“No module named 'MySQLdb'“问题-以及使用PyMySQL连接数据库
- python2.6使用mysql包出现的一些问题以及解决办法
- 【原创】python web应用性能测试出现的问题以及使用的工具
- 遍历list,remove出现问题
- J2ME地图绘制以及使用出现的问题
- 面向对象的设计方式处理Android编程中的GridView问题,以及自定义ListAdapter的使用
- 一个分别使用std::list的remove和erase的问题
- TeeChart 光标工具出现的问题以及一些使用方法
- 在做动态添加删除行的时候,使用jquery遇到的问题:$("#participantList tr").eq(i).remove();
- thinkphp框架使用PHPMailer实现发送邮件的功能,以及各种问题解析
- 面向对象的设计方式处理Android编程中的GridView问题,以及自定义ListAdapter的使用
- mini2440插入usb设备出现: unable to enumerate USB device on port问题的解决,以及使用super vivi对nand flash进行分区
- dom4j 使用xpath 解析 persistence.xml 出现xmlns后不能解析问题解决
- 使用python的列表解析以及函数式计算来简化代码
- 关于Hibernate中fatch=eager的bag集合(一个java List)使用Criteria查询出现重复记录的问题