Вы можете использовать функцию zip
, чтобы получить текущий и следующий элемент в списке в цикле for
. Таким образом, цикл for
выполняет итерацию по списку и смещению списка на 1 одновременно:
for this,after in zip(a,a[1:]):
print this,after
Тем не менее, zip
останавливается в конце кратчайшего списка, поэтому вы не сможете обработать последний элемент списка. Если это проблема, используйте izip_longest
из itertools
.
import itertools
for this,after in itertools.izip_longest(a,a[1:]):
print this,after
В этом случае after
будет None
для последнего элемента в списке.
izip_longest
был представлен в Python 2.6, поэтому, если вы работаете с более ранней версией, вы можете достичь того же эффекта вручную, добавив None
в конец более короткого списка:
for this,after in zip(a,a[1:] + [None]):
print this,after
Вы можете использовать {% for x, y in somelist %}
в шаблоне Django, но вам нужно будет сделать zip
в вашей модели и сохранить его в переменной, переданной в шаблон.