连接JINJA2中的列表

2024-09-28 21:16:45 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在jinja2中连接两个列表变量?

例如

GRP1 = [1, 2, 3]
GRP2 = [4, 5, 6]

{# This works fine: #}
{% for M in GRP1 %}
    Value is {{M}}
{% endfor %}


{# But this does not: #}
{% for M in GRP1 + GRP2 %}
    Value is {{M}}
{% endfor %}

所以,我试着用+(就像在Python中一样)连接这两个列表,但结果发现它们不是列表,而是Pythonxrange对象:

jijna2 error: unsupported operand type(s) for +: 'xrange' and 'xrange'

有没有办法在同一for循环中迭代GRP1和GRP2的连接?


Tags: injinja2列表forisvaluethisbut
1条回答
网友
1楼 · 发布于 2024-09-28 21:16:45

但是你不能用本地的Jinja2模板。最好创建一个新的组合iterable并将其传递给模板,例如:

from itertools import chain

x = xrange(3)
y = xrange(3, 7)
z = chain(x, y) # pass this to your template
for i in z:
    print i

根据注释,您可以显式地将iterable转换为列表,并将这些列表连接起来:

{% for M in GRP1|list + GRP2|list %}

相关问题 更多 >