python for 语句中使用删除
python中d=[1,2,3,4,5,6]foraind:d.remove(a)printd为什么输出是:[2,4,6]...
python中d=[1,2,3,4,5,6] for a in d:d.remove(a) print d 为什么输出是:[2,4,6]
展开
3个回答
2013-09-23
展开全部
在删除列表元素的时候,解释器内有一个隐式的指针,指向下一个要删除的元素的位置。
当准备要删除的时候,指向第一个元素1,然后把这个1删掉,同时指针指向第二个数组元素。但这时候元素1已经被删除了,元素2是第一个元素,第二个元素是3,这时候3被删除了。
并不是想象中的那样把所有的元素都删除。也不应该这样写程序。
Python这种非常注重格式的语言,请以后在提问的时候,把空格、换行都打清楚。
当准备要删除的时候,指向第一个元素1,然后把这个1删掉,同时指针指向第二个数组元素。但这时候元素1已经被删除了,元素2是第一个元素,第二个元素是3,这时候3被删除了。
并不是想象中的那样把所有的元素都删除。也不应该这样写程序。
Python这种非常注重格式的语言,请以后在提问的时候,把空格、换行都打清楚。
2013-09-23
展开全部
remove删除的是元素,而不是偏移值对应的那个元素。那位回答的人连偏移值都没搞清楚就胡说……[1,2,3,4,5]中,1的偏移值是0,而不是1!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-23
展开全部
把FOR循环好好找点资料理解一下,上面的说法我持保留意见。给几种实现你吧d=[1,2,3,4,5,6] 1: for i in xrange(len(a)):
a.remove(a[0])2: for i in xrange(len(a)):
a.pop() 如果你一定想对每个元素进行remove也可以,构建一个不关联的list for a in d[:]: d.remove(a) print d
a.remove(a[0])2: for i in xrange(len(a)):
a.pop() 如果你一定想对每个元素进行remove也可以,构建一个不关联的list for a in d[:]: d.remove(a) print d
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询