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

Jinja2中unique过滤器无法应用于拼接列表的问题排查

解决Jinja2中列表拼接后去重失效的问题

你遇到的问题是Jinja2运算符优先级导致的:过滤器|的优先级高于列表加法+,所以你的模板代码{{ this + that | unique | list }}实际执行顺序是:

  1. 先对that列表执行unique去重,得到['one', 'two']
  2. 再和原this列表['one', 'one']拼接,最终得到['one', 'one', 'one', 'two'],这就是去重未生效的原因。

解决方法很简单,用括号把列表拼接操作包裹起来,强制让拼接先执行,再对合并后的整个列表去重:

{{ (this + that) | unique | list }}

用你的测试数据验证,这个模板会输出预期的去重结果:

['one', 'two']

补充说明:单独对单个列表使用unique能正常去重,是因为没有运算符优先级冲突,过滤器直接作用于整个列表。

内容的提问来源于stack exchange,提问作者Justin Palmer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:14:52