89

I have a list of list like :

    [[elem0, elem1, elem2], [elem3, elem4, elem5], [elem6, elem7, elem8], ...]

I wrote the follow template file :

    {% for result in results %}
        <tr>
            <td>result[0]</td>
            <td>result[1]</td>
            <td>result[2]</td>
        </tr>
    {% endfor %}

But it didn't work, What i can think is use nested for. Is there another method to access the element in the list in jinja?

stamaimer
  • 6,227
  • 5
  • 34
  • 55

2 Answers2

137

You still need to output the loop variables inside braces.

{% for result in results %}
    <tr>
        <td>{{ result[0] }}</td>
        <td>{{ result[1] }}</td>
        <td>{{ result[2] }}</td>
    </tr>
{% endfor %}

Also, consider a nested for loop:

{% for result in results %}
    <tr>
    {% for elem in result %}
        <td>{{elem}}</td>
    {% endfor %}
    </tr>
{% endfor %}
jvperrin
  • 3,368
  • 1
  • 23
  • 33
zxzak
  • 8,985
  • 4
  • 27
  • 25
0

You can use filters and built-in filters.length to get the length of a list and use the range() function.

{% for index in range(results | length) %}
    <tr>
    {% for element in results[index] %}
        <td>{{element}}</td>
    {% endfor %}
    </tr>
{% endfor %}
fkri06
  • 16
  • 1
  • 2