python循环删除列表里的元素!漏删!
2017-01-10 12:04
591 查看
1 li = [1,2,3,4,5,6] 2 for i in li: 3 if i<3: 4 li.remove(i) 5 print(li)
#输出的结果是 [2,3,4,5,6] 2没有remove掉 是因为
#在第一次循环的时候,1 被remove掉了
#然后坑位由6个变为5个
#以后的一次往前排,2到了第一个坑位
#然后在迭代的时候,就是从第二个坑位开始迭代,就是从3开始
#所以2 就这么被忽略了!
解决:
例子一:
我是在做飞机大战,子弹越界要删除的时候遇到的这个问题,子弹都保存在bullet_list
可以在 函数 里面定义一个 局部变量 remove_list
在局部变量里定义是因为局部变量只有在调用的时候才有,函数调完的时候remove_list也就没了,省的自己还要删除
1 for bullet in self.bullet_list: 2 if bullet.judge(): 3 self.remove_list.append(bullet) 4 for i in self.remove_list: 5 self.bullet_list.remove(i)
这个地方在判断的时候用.judge()方法,而不是直接对self.y<0进行判断,也是养成对函数封装的好习惯,尽量不要对属性直接进行操作
例子二:
100个人围成一圈,编号1-100,从1 到M 报号,报到M 的人,退出,知道一圈还剩下M-1个人, 这时候剩下几个人,最初的号码是多少
if __name__ == '__main__': people_list = list(range(1,101)) M = int(input('请输入M:')) count_num = 0 while 1: remove_list = [] for people in people_list: count_num += 1 if t%M == 0: remove_list.append(people) count_num = 0 for i in remove_list: people_list.remove(i) if len(people_list) <= M-1 : for temp in people_list: print(temp) break
相关文章推荐
- python列表删除重复元素的三种方法
- Python删除列表中元素
- python list列表删除元素需要注意的问题
- 【Python】while简单实现删除list列表中的多个空元素
- 删除列表元素时需注意的问题 分类: python基础学习 python 小练习 2013-10-09 14:02 293人阅读 评论(0) 收藏
- Python 中删除列表中所有的空元素
- Python删除列表中重复元素
- python remove a element safely 安全地删除列表中的元素
- Python中列表元素删除
- Java循环中删除一个列表元素
- foreach循环中删除一个列表中的元素报错
- 在Python的列表中利用remove()方法删除元素的教程
- python remove和del的区别,python 循环删除元素
- Python删除列表中重复的元素
- python删除列表元素
- Python 列表删除元素
- 在一个循环中删除一个列表中的元素
- Python学习记录02 列表添加和删除元素
- python-列表删除所有指定元素
- python小练习2:删除列表中重复的元素