获取循环中的下一项

     2023-02-24     164

关键词:

【中文标题】获取循环中的下一项【英文标题】:Getting the next item in a loop 【发布时间】:2011-12-22 18:19:14 【问题描述】:

我想做的很简单:我有一个模型,我正在运行一个重组循环。现在我想将循环的前 4 项并排显示,然后在下一行继续显示接下来的 4 项,直到列表完成。如果没有更多项目,则该行中的其他单元格可以保持空白。

我试图了解如何在这里使用迭代,但无法弄清楚它如何适合我所拥有的。另外,我认为应该可以以更简单的方式执行此操作...下面我复制了我现在拥有的代码,这显然显示了循环的第一项 4 次,然后是第二项的 4 次,等等。

我知道这个网站上有一些类似的问题,但我无法利用它们为我的问题开发解决方案。我在 Google App Engine 上运行 Python。非常感谢任何帮助!

% regroup communities|dictsort:"in_country" by in_country as community_list %

% for in_country in community_list %
<h2 style="font-size:16px;"> in_country.grouper </h2>

<table cellspacing="0">
% for item in in_country.list|dictsort:"name" %

<tr style="text-align:center;">
 <td  class='community_table'>
    <img src=" item.image " style="height:40px;"><br />
    <a href=' item.url ' style="font-size:10px; margin-left:10px;" TARGET = "_blank"> item.name </a><br />
     item.com_type <br />
     item.in_city <br />
 </td>

 <td  class='community_table'>
    <img src=" item.image " style="height:40px;"><br />
    <a href=' item.url ' style="font-size:10px; margin-left:10px;" TARGET = "_blank"> item.name </a><br />
     item.com_type <br />
     item.in_city <br />
 </td>

 <td  class='community_table'>
    <img src=" item.image " style="height:40px;"><br />
    <a href=' item.url ' style="font-size:10px; margin-left:10px;" TARGET = "_blank"> item.name </a><br />
     item.com_type <br />
     item.in_city <br />
 </td>

 <td  class='community_table'>
    <img src=" item.image " style="height:40px;"><br />
    <a href=' item.url ' style="font-size:10px; margin-left:10px;" TARGET = "_blank"> item.name </a><br />
     item.com_type <br />
     item.in_city <br />
 </td>

% endfor %     
</table>  

% endfor %

【问题讨论】:

这个问题与Python无关。 @DanielRoseman 不同意。该应用程序是用 Python 编写的,它使用 Python 模板引擎,解决方案可能是“在传递给模板之前在 Python 中进行分组”。 【参考方案1】:
<table cellspacing="0">
% for item in in_country.list|dictsort:"name" %

% if forloop.counter0|divisibleby:4 %
<tr style="text-align:center;">
% endif %

 <td  class='community_table'>
    <img src=" item.image " style="height:40px;"><br />
    <a href=' item.url ' style="font-size:10px; margin-left:10px;" TARGET = "_blank"> item.name </a><br />
     item.com_type <br />
     item.in_city <br />
 </td>

% if forloop.counter|divisibleby:4 %
 </tr>
% endif %

% endfor %
</table>

【讨论】:

感谢您的回答。我明白你在做什么,它实际上比我的尝试更合乎逻辑。但是,在尝试代码时会出现错误: TemplateSyntaxError: Invalid filter: 'divisible_by' 顺便说一下,最后的'forloop.counter' 不应该也以 0 结尾(forloop.counter0) 对不起,应该是divisibleby。不,您希望第一个标签仅出现在第 0、4、8 行等上,而最后一个标签出现在第 3、7、11 行等上。 我想通了 :) 它是 divisibleby 而不是 divisible_by。其余的我保持原样。非常感谢! PS。写完以上内容后阅读您的评论 看到问题和答案很有趣,因为我的用例类似:在列表中显示城市类型的项目。我还使用表格进行布局,使用 GAE + Jinja2 进行渲染,使用 django 的 .po 和 .mo 文件的 i18n 库进行本地化。感谢您分享您的做法【参考方案2】:

我建议在将 Python 代码传递给模板之前对行进行分组。你可以使用这样的迭代器来做到这一点:

my_iter = iter(my_list)
grouped = zip(my_iter, my_iter, my_iter, my_iter) # or zip(*[my_iter]*4)

【讨论】:

谢谢尼克。在发布问题之前,我查看了 iter 函数,但我不明白。我想我会回到那个文档:) 再次感谢!

Javascript:通用获取数组中的下一项

】Javascript:通用获取数组中的下一项【英文标题】:Javascript:Genericgetnextiteminarray【发布时间】:2013-04-3007:50:02【问题描述】:我正在尝试创建一个JavaScript函数,该函数将在字符串数组中搜索一个值并返回下一个字符串。例如,... 查看详情

根据前一项的ID获取数组中的下一项[关闭]

】根据前一项的ID获取数组中的下一项[关闭]【英文标题】:GettingthenextiteminanarraybasedontheIDofthepreviousitem[closed]【发布时间】:2016-11-0709:19:06【问题描述】:一点背景资料我使用AngularJS作为前端框架,并使用Laravel作为前端通信的API... 查看详情

Ruby on Rails:获取模型中的下一项

】RubyonRails:获取模型中的下一项【英文标题】:RubyonRails:Getnextiteminmodel【发布时间】:2011-11-0419:28:48【问题描述】:假设我只是在“显示”视图上运行railsgscaffoldbookname:stringabout:text,我将如何实现一个按钮以转到模型中的下一... 查看详情

如果条件满足,列表中的下一项

】如果条件满足,列表中的下一项【英文标题】:Nextiteminalistifconditionmet【发布时间】:2017-04-2416:21:58【问题描述】:candidates=[\'abacus\',\'ball\',\'car\']forcandidateincandidates:ifdict[candidate]=="true":"""next"""else:continue"""dosomething"""我在这里... 查看详情

如何使用 Mongoose 获取当前项的下一项和上一项

】如何使用Mongoose获取当前项的下一项和上一项【英文标题】:HowtofetchnextandpreviousitemofthecurrentonewithMongoose【发布时间】:2012-02-2712:39:46【问题描述】:我有一个博客。在单个帖子页面上,我想显示指向上一篇文章的链接,如果... 查看详情

如何使用 Mongoose 获取当前项的下一项和上一项

】如何使用Mongoose获取当前项的下一项和上一项【英文标题】:HowtofetchnextandpreviousitemofthecurrentonewithMongoose【发布时间】:2012-02-2712:39:46【问题描述】:我有一个博客。在单个帖子页面上,我想显示指向上一篇文章的链接,如果... 查看详情

C++ 自定义流操纵器,可更改流中的下一项

】C++自定义流操纵器,可更改流中的下一项【英文标题】:C++customstreammanipulatorthatchangesnextitemonstream【发布时间】:2010-10-2210:12:43【问题描述】:在C++中,要以十六进制打印数字,请执行以下操作:intnum=10;std::cout<<std::hex<&... 查看详情

跳到循环 vba 中的下一次迭代

】跳到循环vba中的下一次迭代【英文标题】:Skiptonextiterationinloopvba【发布时间】:2014-01-0723:57:48【问题描述】:我正在尝试创建一个简单的条件循环,如果条件为真,它将进​​入下一次迭代。我到目前为止的代码是:Fori=2To24L... 查看详情

如果 next(item) 移动到列表中的下一项,则相当于 next(item) python

】如果next(item)移动到列表中的下一项,则相当于next(item)python【英文标题】:ifnext(item)movestothenextiteminalist,whatistheeqvilantofnextnext(item)python【发布时间】:2015-01-1805:43:29【问题描述】:这里是上下文的代码。defprocessScores(file,score):#op... 查看详情

如果满足条件,则移动到嵌套 for 循环中的下一次迭代

】如果满足条件,则移动到嵌套for循环中的下一次迭代【英文标题】:Movingtonextiterationinnestedforloopifconditionmet【发布时间】:2021-05-1515:43:07【问题描述】:我有两个要在for循环中比较的数据框:df_intervals和df_events。对于每个事件... 查看详情

如何获取SQL表中的下一条记录

】如何获取SQL表中的下一条记录【英文标题】:HowtogetthenextrecordinSQLtable【发布时间】:2009-02-0301:57:26【问题描述】:我的MSSQL表中有一组记录。以日期为主键。但日期仅适用于工作日,而不适用于连续日。例如:2000年1月3日凌晨... 查看详情

如何默认选择第一项,然后在角度 6 中突出显示选定的下一项 json 数据

】如何默认选择第一项,然后在角度6中突出显示选定的下一项json数据【英文标题】:howtoselectfirstitembydefaultandthenhighlighttheselectednextitemofjsondatainangular6【发布时间】:2019-01-1715:08:21【问题描述】:这是我的customer.component.html。我... 查看详情

如何使用javascript记录链接点击,然后自动点击Qualtrics中的下一步按钮?

】如何使用javascript记录链接点击,然后自动点击Qualtrics中的下一步按钮?【英文标题】:HowtorecordalinkclickandthenautomaticallyclicknextbuttoninQualtricswithjavascript?【发布时间】:2021-09-2201:11:02【问题描述】:我正在Qualtrics进行一项调查。... 查看详情

使用 gcc 修改内存中的下一条指令

...ithgcc【发布时间】:2014-12-1513:17:54【问题描述】:我想在获取之前修改下一条指令,在foo函数中Thispost的最佳答案中,*p指向main函数中的下一条指令。我想修改*p指向的内容。例如,我想将下一条指令更改为跳转指令。我该怎么... 查看详情

什么用于切换到程序中的下一列

...做什么:)【参考方案1】:1.更改你的读取类的返回类型以获取其他活动中的数据2.创建数据库类的对象并从该对象读取数据示 查看详情

从外部方法调用 ruby​​ 循环上的下一个

】从外部方法调用ruby​​循环上的下一个【英文标题】:callnextonrubyloopfromexternalmethod【发布时间】:2013-07-0910:59:13【问题描述】:在Ruby中,很容易告诉循环转到下一项(1..10).eachdo|a|nextifa.even?putsaend结果=>13579但是如果我需要从... 查看详情

C#:获取窗口服务的下一次执行时间

】C#:获取窗口服务的下一次执行时间【英文标题】:C#:getnextexecutiontimeofwindowservice【发布时间】:2013-01-1921:34:22【问题描述】:我正在开发一个窗口服务,我必须安排它。时间表设置为一周中的任何三天和一天四次。在任何时... 查看详情

如何等待http请求在处理到angular 7中的下一步之前获得响应[重复]

...问题描述】:我正在尝试构建应用程序,我正在发送一个获取请求以从组件获取数据。该请求将被调用,并且数据将用于执行下一步。但是,在我得到服 查看详情