In django Templates beende ich dies mit {% if forloop.first %}
, aber ich bin nicht sicher, wie dies in regelmäßigen 'ole python tun, ohne einen klobigen Zähler zu schreiben, wie meine bedingten iteriert. Ist das ein einfacher Ausweg?bedingte Iteratoren in Python: Wie kann ich eine bestimmte Iteration auswählen?
0
A
Antwort
5
Werfen Sie einen Blick auf enumerate
.
Geben Sie ein Enumerationsobjekt zurück. Die Sequenz muss eine Sequenz, ein Iterator oder ein anderes Objekt sein, das die Iteration unterstützt. Die next() -Methode des Iterators, die von enumerate() zurückgegeben wird, gibt ein Tupel zurück, das eine Anzahl (von Start, die standardmäßig auf 0 gesetzt wird) und den entsprechenden Wert, der durch iteratives Iterieren erhalten wird, zurückgibt. das erste Element einer Sequenz aufzählen() ist nützlich für eine indizierte Serie zu erhalten ...
>>> for i, season in enumerate(['Spring', 'Summer', 'Fall', 'Winter']):
... print i, season
0 Spring
1 Summer
2 Fall
3 Winter
+0
Ausgezeichnet. Wusste das nicht. – Flowpoke
Ich bin nicht sicher, was Sie durch „eine bestimmte Iteration auswählen“ bedeuten, aber wenn Sie testen wollen als 'if sequence [0]'. Es wäre einfacher zu helfen, wenn Sie zeigen, was Sie versuchen, und warum, weil es möglicherweise falsch Ansatz in erster Linie –
Ich habe die django Vorlagen docs, um besser zu verstehen, Ihre Frage, und ich bin mir fast sicher, es ist besser Lösung in Python als Iteration Nummer Hack. Es macht Sinn in Template-System, aber nicht in voller und schöner Sprache wie Python;) Also wenn Sie bessere Antworten haben möchten, beschreiben Sie bitte, was Sie vorhaben. –