我想遍历一个列表并打印由','分隔的元素,没有逗号。由于形成和逃避,我不能只', '.join(headings)
。但是下面的内容显然让我留下了一个逗号。
% for x in headings:
<a href='#${x|u}'>${x}</a>, \
% endfor
或者更一般地说:当在Mako模板中迭代某些东西时,有没有办法知道我是否到达了最后一个元素(或者第一个,或者是nt)?
答案 0 :(得分:4)
我这样做:
<%def name="format( item )"><a href="#${item|u}">${item|u}</a>
</%def>
${', '.join( format(item) for item in l)}
答案 1 :(得分:4)
要通过循环跟踪第一段或最后一段,在Mako中就像在普通Python中一样,使用:
% for i, x in enumerate(headings):
所以i
在第一条腿上为0,在最后一条腿上为len(headings) - 1
。
答案 2 :(得分:2)
延伸@ AlexMartelli的回答,我喜欢将enumerate
事情与一个很好的技巧结合起来,以保持指令的小:
% for i, x in enumerate(xs):
${','*bool(i)} ${x}
% endfor