【问题标题】:How to add commas / delimiters for all list items except last?如何为除最后一个列表项之外的所有列表项添加逗号/分隔符?
【发布时间】:2011-06-10 18:50:33
【问题描述】:

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

所以对于:

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

我明白了:

Sam, Neil, Bob,

我想要:

Sam, Neil, Bob

【问题讨论】:

标签: python html css django


【解决方案1】:

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

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

【讨论】:

  • {{ u.name }}{% if not forloop.last %},{% else %}.{% endif %} 如果你想要一个“.”最后。
【解决方案2】:

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

forloop.first
forloop.last

因此您可以使用 if 语句放置分隔符:

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

【讨论】:

    【解决方案3】:

    如果您不需要循环,而您只有一个列表,那么“加入”可能是您最好的解决方案。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      • 2012-12-16
      相关资源
      最近更新 更多