如何在 Python 的 Mako 模板中迭代时跟踪状态
我想循环一个列表并打印由“,”分隔的元素,不带尾随逗号。由于格式化和转义,我不能只是 ', '.join(headings)
。但下面的内容显然给我留下了一个尾随逗号。
% for x in headings:
<a href='#${x|u}'>${x}</a>, \
% endfor
或者更一般地说:当迭代 Mako 模板中的某些内容时,有没有办法知道我是否到达了最后一个元素(或第一个元素,或 nt)?
I want to loop over a list and print the elements seperated by ',', with no trailing comma. I can't just ', '.join(headings)
because of the formating and escaping. But the following obviously leaves me with a trailing comma.
% for x in headings:
<a href='#${x|u}'>${x}</a>, \
% endfor
Or more generally: When iterating over something in a Mako template, is there a way to know if I reached the last element (or first, or nt)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我做这样的事情:
I do stuff like this:
要跟踪循环中的第一条或最后一条腿,在 Mako 中就像在普通 Python 中一样,使用:
so
i
在第一条腿上为 0,len(headings) - 1
在最后一站。To keep track of the first or last leg through the loop, in Mako like in plain Python, use:
so
i
is 0 on the first leg andlen(headings) - 1
on the last leg.扩展 @AlexMartelli 的答案,我喜欢将
enumerate
与一个很好的技巧结合起来,以保持指令较小:Extending on @AlexMartelli's answer, I like to couple the
enumerate
thing with a nice trick to keep the instruction small: