如何在jinja2中按索引设置列表项

mau*_*cio 4 python jinja2

你好我想在jinja2的列表中设置一个项目的值,因为我正在尝试

<code>
{% set arr=[0,0,0,0,0,0,0,0] %}
{% print arr %}
{% set arr[1] = 1 %}
{% print arr %}
</code>
Run Code Online (Sandbox Code Playgroud)

但收到一条错误消息说:

TemplateSyntaxError:期望令牌'=',得到'['

请提出任何建议,在此先感谢

Vor*_*Vor 6

你可以这样做:

In [25]: q = '''{% set arr=[0,0,0,0,0,0,0,0] %}
{% print arr %}
{% if arr.insert(1,1) %}{% endif %}
{% print arr %}'''

In [26]: jinja2.Template(q).render()
Out[26]: u'\n[0, 0, 0, 0, 0, 0, 0, 0]\n\n[0, 1, 0, 0, 0, 0, 0, 0, 0]'

In [27]: 
Run Code Online (Sandbox Code Playgroud)

  • 绝对不应该使用诸如list.insert或dict.update之类的副作用来完成这些类型的任务。 (2认同)