ansmirnov

Django. Не выводить текст после последнего элемента списка

Теги: Programming, Python, Django

Очень часто требуется вывести список, например, через запятую, но при этом после последнего элемента не выводить эту самую запятую.

Из приведенных листингов необходимо удалить символ "_"!

Например, при lst = [1, 2, 3] код

{_% for x in lst %}
    {_{ x }},
{_% endfor %}

выведет на экран текст 1, 2, 3,.

Чтобы избавиться от последней запятой можно воспользоваться служебной переменной forloop.last. Эта переменная принимает значение True, если текущий шаг цикла является последним и False в противном случае.

Пример выше можно переписать так.

{_% for x in lst %}
    {_{ x }}{_% if not forloop.last %}, {_% else %}.{_% endif %}
{_% endfor %}

Тогда вывод будет другим: 1, 2, 3..

Для проверки первого шага цикла можно воспользоваться переменной forloop.first.

Более подробно с вопросом можно ознакомиться в документации.