Djangoでリストの反復中にインデックスを表示するにはどうすればよいですか?

Source python django

リストをビューに渡します。私の配列は次のようになります:[football, basketball, soccer]。私の見解では、次のようなものを表示したいと思います。
1. football
2. basketball
3. soccer

これは、配列に渡されるリストを反復処理し、要素に対してforループを実行する必要があることを意味します。テンプレートファイルでこれを行うにはどうすればよいですか?

要素ごとに、そのインデックスを取得して1を追加する必要があります。今、私はビューでこれを行う方法がわかりません。これを行うことを考えた1つの方法は、{'1', 'football': '2', 'basketball': '3', 'soccer'}のような辞書を作成することですが、データはすでにリスト形式であるため、変換したくありません。
推奨答え
forloop.counterテンプレート変数が必要です。

The for loop sets a number of variables available within the loop:

forloop.counter The current iteration of the loop (1-indexed)



したがって、コードは次のようになります。
{% for sport in sports %}
    <p>{{forloop.counter}}. {{ sport }}</p>
{% endfor %}

もちろん、質問のようにデータを表示するだけの場合、より簡単な方法は、順序付きリストにアイテムを表示することです。ブラウザが番号付けを行います。
<ol>
{% for sport in sports %}
    <li>{{ sport }}</li>
{% endfor %}
</ol>
その他答え #1
@nrabinowitzからの回答は、テンプレートで使用する場合に適したソリューションです。しかし、あなたはそれをある観点から求めていたと思います。

リストからインデックスと値を取得する最良の方法は、次のようにenumerate関数を使用することです。
>>> sports = ['football', 'basketball', 'soccer']
>>> for i,sport in enumerate(sports):
...     print "%d. %s" % (i, sport)
0. football
1. basketball
2. soccer

または、1ベースのインデックスが必要な場合:
>>> for i,sport in enumerate(sports):
...     print "%d. %s" % (i+1, sport)
1. football
2. basketball
3. soccer
その他答え #2
上記のanswerの礼儀

誰かがループ反復回数の条件を使用する必要がある場合、彼はこのコードブロックを使用できます。
2は、integerの説明に使用されます。
{% if forloop.counter == 2 %}
do something what you want for second iteration
{% endfor %}

関連記事

すべてのtrが特定のクラスを持つn番目のTDのテキストを取得します
SwiftUIでaddObserverを設定する方法は?
pythonの3次元配列に要素を追加する方法
デフォルト値を指定せずにキーワード引数を持つことはできますか?
YouTubeビデオをダウンロードできません