Frage

Ich möchte über eine Liste Schleife und drucken die Elemente durch getrennt ‚‘, ohne Komma. Ich kann nicht nur wegen der Formatierung ', '.join(headings) und zu entkommen. Aber die folgenden offensichtlich lässt mich mit einem Komma.

% for x in headings:
  <a href='#${x|u}'>${x}</a>, \
% endfor

Oder allgemeiner: Wenn Iterieren über etwas in einer Mako-Vorlage, ist es eine Möglichkeit zu wissen, ob ich das letzte Element erreicht (oder ersten oder nt)

War es hilfreich?

Lösung

ich Sachen wie diese:

<%def name="format( item )"><a href="#${item|u}">${item|u}</a>
</%def>

${', '.join( format(item) for item in l)}

Andere Tipps

Für eine Übersicht über die erste oder letzte Etappe durch die Schleife, in Mako wie in einfachen Python, verwenden Sie:

% for i, x in enumerate(headings): 

so i 0 auf dem ersten Schenkel und len(headings) - 1 auf der letzten Etappe.

Die Ausweitung auf @ AlexMartelli Antwort, ich mag zu koppeln, die enumerate Sache mit einem schönen Trick halten die Anweisung klein:

% for i, x in enumerate(xs):
  ${','*bool(i)} ${x}
% endfor
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top