Python中文
首页
教程
问答
标签
搜索
登录
注册
Python用于每隔一个值跳过循环
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在django应用程序中遇到了一个奇怪的问题,for循环会跳过其他项目。我使用返回的queryset和<code>list()</code>进行迭代。这样做的目的是删除另一个列表中的项,该列表通过POST变量传递给视图。这个视图是一个ajax请求,返回一个JSON列表,其中列出了需要推送到页面上的项。在下一个请求中,页面将传递已经在页面上的对象的id列表,因此我可以从queryset中删除这些id,并只返回新的id。我在代码的问题部分放置了几个print语句,并发现在来自页面的第一个请求中,列表进入页面是空的,因为没有任何显示。查询运行并返回所有结果,然后显示在页面上。在第二个请求中,列表与所有id一起进入页面,这就是问题发生的地方:当我循环查询集,检查id是否在列表中时,它只迭代奇数值(已删除),并返回偶数id对象的列表,以便在页面上第二次显示。在</p> <p>代码:</p> <pre><code>items = list(listobj.getItems()) temp = items print "Item List: ", temp print "Rendered List: ", request.POST['rendered'].split(',') for item in temp: print "Item ID: ", str(item.id) print "Rendered List: ", request.POST['rendered'].split(',') if str(item.id) in request.POST['rendered'].split(','): items.remove(item) print "Removed Item: ", item.id print "Unrendered Items: ", [item.id for item in items] </code></pre> <p>结果:</p> ^{pr2}$
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p><code>temp</code>和<code>items</code>引用同一个对象,因此当你<code>items.remove()</code>时,你也在修改<code>temp</code>。您可能想做<code>temp = items[:]</code>来复制<code>items</code>列表的值。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
区分轴上的像素大小
9 回答
区分过度拟合与良好预测
8 回答
区分通过POST接收的数据并在Cherrypy中获取
2 回答
区分重写和重载
9 回答
区分金贾二号的类型
4 回答
区别:IF IN和IF==python
8 回答
区别:list.append()与incrementequal?
6 回答
区别:创建在启动wx应用程序时不“阻止”控制台的脚本
5 回答
区别于python中的命令行和CGI
7 回答
区别关系
3 回答
区别是什么APIClient.enforce\ csrf\检查以及APIClient.handler.enforce\ csrf\ u检查
6 回答
区块.draw()未在python空闲模式下工作
3 回答
区块链API调用输出对象名称而不是内容
10 回答
区块链nonce值随负载变化
5 回答
区块链Python语法错误(Snakecoin)
10 回答
区块链不连接到服务器和矿工
5 回答
区块链信息钱包支票支付员
2 回答
区块链和区块链密码错误
9 回答
区块链尝试向Transaction字典添加键/值以创建区块链
7 回答
区域:IOError:[Errno 22]无效模式('w')或filenam
4 回答