You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jinja中让循环执行1次后终止,实现字典与列表元素一一匹配

解决方案

你的问题根源是使用了双层嵌套循环,所以每个字典键都会遍历完所有颜色值,生成笛卡尔积式的重复结果。只需改为单次循环,借助Jinja2循环内置的索引变量取对应位置的颜色即可实现一一匹配。

修改后的代码

series:
[{
    points: [
    {% for key, value in Top10.items() %}
        { x: "{{key}}", y: {{ value }}, fill: "{{ colors[loop.index0] }}" },
    {% endfor %}
    ]                 
}],

注:loop.index0是Jinja2 for循环的内置变量,代表当前循环的迭代索引,从0开始计数,正好匹配列表的下标规则。同时修正了你原代码中JS对象属性的语法错误:fill后的等号改为JS对象要求的冒号。

注意事项

  • 请确保Top10的元素数量和colors列表的长度一致,否则会出现索引越界问题
  • 如果使用Python3.7以下版本,默认字典不保留插入顺序,建议将Top10转换为collections.OrderedDict类型,保证键的顺序和颜色顺序一一对应

内容的提问来源于stack exchange,提问作者Shravya Mutyapu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 23:09:04