在python 中进行一次简单的列表循环,当用到remove时出现了一个很有趣的现象,

代码如下:

1 a=range(30)2 for i in a :3     if i%4!=0:4         a.remove(i)

这段代码是在a里取i 当i不能够整除4 的时候,a就在自己里面删除这个时候的i 值,最后输出的a的结果应该是[0,4,8,12,16,20,24,28],结果真的是这样吗? 

photoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训

1 a=range(30)2 for i in a :3     if i%4!=0:4         a.remove(i)5         6 a7 [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]

photoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训

这个时候出现的结果完全不一样,2,6,10这些根本不对,那么为什么啊?那么这里就得说一下for in和remove了,

For in 是对下标进行操作,而remove是对值进行操作

网友评论