如何为除最后一个之外的所有列表项添加逗号/分隔符?

时间:2011-01-17 23:38:47

标签: python html css django

假设我有一个for循环,它列出了一堆用户。循环中可能有0-n个用户。我想在每个用户名之后加上逗号,除了最后一个。

所以:

<p>
{% for u in users %}
{{u.name}},
{% endfor }
</p>

我明白了:

Sam, Neil, Bob,

我想:

Sam, Neil, Bob

3 个答案:

答案 0 :(得分:7)

我同意加入是一个很好的方法。如果你想用for来做,试试

{% for u in users %}
{{u.name}}{% if not forloop.last %},{% endif %}
{% endfor }

答案 1 :(得分:2)

Django 1.2中的for循环包含一些自动生成的变量。其中包括:

forloop.first
forloop.last

所以你可以使用if语句放置分隔符:

<p>
{% for u in users %}
{{u.name}}
{% if not forloop.last %}
,
{% endif %}
{% endfor %}
</p>

答案 2 :(得分:-1)

如果你不需要循环,并且你只有一个列表,那么'join'可能是你最好的解决方案。

但首先我们需要获取所有名称的列表,map应该帮助我们,然后加入所有结果:

{% with names = map(lambda u: u.name, users) %}
{{ names|join:", " }}
{% endwith %}