Python中文
首页
教程
问答
标签
搜索
登录
注册
如何删除列表元素同时循环列表本身而不重复i
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在Python for语句中浪费了一点时间:</p> <pre><code>class MyListContainer: def __init__(self): self.list = [] def purge(self): for object in self.list: if (object.my_cond()): self.list.remove(object) return self.list container = MyListContainer() # now suppose both obj.my_cond() return True obj1 = MyCustomObject(par) obj2 = MyCustomObject(other_par) container.list = [obj1, obj2] # returning not an empty list but [obj2] container.purge() </code></pre> <p>它并不像我预期的那样工作,因为当“purge”中的循环删除列表中的第一个对象时,第二个对象将移到列表的开头,循环结束。在</p> <p>我解决了复制问题自我列表在for循环之前:</p> ^{pr2}$ <p>我想for语句停止工作是因为我正在更改原始列表的长度。有人能澄清这一点吗?在</p> <p>还有没有更“优雅”的方法来解决这个问题呢?如果列表中的元素多于几个,那么每次都复制它似乎不是一个好主意。在</p> <p>也许filter()函数是正确的,但我希望有其他方法(如果有的话)。在</p> <p>我是个新手。在</p> <hr/> <p>总结一下你有用的答案:</p> <ul> <li>永远不要编辑正在循环的列表</li> <li>复制列表或使用列表理解</li> <li>复制一张单子不会浪费你的记忆,在这种情况下谁会介意呢</li> </ul>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>给自己列一个新的清单:</p> <pre><code>def purge(self): self.list = [object for object in self.list if not object.my_cond()] return self.list </code></pre> <p>保留任何优化,直到您分析并发现此方法确实是应用程序的瓶颈。(我打赌不会的。)</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?
8 回答
当用户登录到站点时,如何显示不同的导航栏
4 回答
当用户登录时,在Flask中向用户显示处理结果
1 回答
当用户的Flask会话结束时,我如何从Redis后端中移除所有Celery结果?
6 回答
当用户的Okta配置文件字段当前为blan时,更新该字段
3 回答
当用户的付款逾期2天时,从Django模型检索数据
3 回答
当用户的消息以问号结尾时,如何让机器人说些什么?
6 回答
当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?
1 回答
当用户确定打印数量时,使用Matplotlib打印动画
3 回答
当用户离开时是否可以删除整个网页?
2 回答
当用户给出一个单词时如何打印?
1 回答
当用户继续更改TKin中的值(使用trace方法)时,使用Entry并更新输入的条目
8 回答
当用户编辑表单字段时,从Django时间字段中删除秒数
1 回答
当用户被更改时,消息不会来自web套接字
10 回答
当用户访问表单时,如何使表单为只读,而不具有更改权限
7 回答
当用户试图更改对象的值时,使用描述符类引发RuntimeError
6 回答
当用户调整GUI的大小时,是否有方法更改GUI内容的大小?
6 回答
当用户调整风的大小时,pythontkinter小部件的大小会不均匀
7 回答
当用户购买某个类别时,是否查找其他类别的销售?
3 回答
当用户转到上一页时,Django和芹菜插入操作
6 回答