
備忘録的な小ネタ。StackOverFlowからの情報です。Pythonのテンプレートエンジン「Jinja2」で多重forループのインデックスを取得する方法についてです。
stackoverflow.com
Jinja2でインデックスを取得する
Jinja2では、pythonのenumerate関数に相当するものが無いので、ループのインデックスを取得する際はloop.index0(インデックスを1から始めたいときはloop.index)というオブジェクトを使います。
{% for i in list %} {{ loop.index0 }} {% endfor %}
多重ループでインデックスを取得する
では、多重ループがあって、その内側のループの中で外側のループのインデックスを扱い時はどうすれば良いでしょうか?その場合は、setを使うと上手くいくそうです。
{% for i in list_a %} {% set outer_loop = loop %} {% for j in list_b %} {{ outer_loop.index0 }} {% endfor %} {% endfor %}
なるほどねー。