让lst
为蔬菜List
,表示为字符串:["cucumbers", "peppers", "tomatoes", "carrots"]
。我希望用逗号加入这些,除了我希望最后一个是and
这个词(为了本练习的目的,我们假设对牛津逗号有一定程度的容忍度),以获得以下内容:
cucumbers, peppers, tomatoes, and carrots
我如何在Jinja2
中完成此操作?我知道loop.last
让我识别最后一次,但不是倒数第二次迭代,这是相关的。
答案 0 :(得分:1)
{% if loop.revindex == 2 %}
或者
{% if loop.revindex0 == 1 %}
请参阅List of Control Structures章节中的for循环变量。
答案 1 :(得分:0)
我这样做了牛津逗号:
{% for label in post.labels %}
<li><a href="/labels/{{label}}">{{label}}</a>
{% if not loop.last and loop.length > 2%}, {%endif%}
{% if loop.revindex0 == 1 %} and{%endif%}</li>
{% endfor %}
答案 2 :(得分:0)
对于那些不想使用牛津逗号的人,我使用了它:
{% for name in my_list %}
{{ name }}
{%- if loop.length > 1 and not loop.last -%}
{%- if loop.revindex0 == 1 %} and {% else %}, {% endif %}
{% endif %}
{% endfor %}
输出类似:
cucumbers, peppers, tomatoes and carrots