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

如何用Jinja内置过滤器实现Python列表推导式的等效逻辑?

Jinja实现等效列表推导式的写法

原Python风格的列表推导式无法在Jinja中直接运行,因为Jinja不支持这类原生Python推导式语法。你可以用Jinja内置过滤器实现等效逻辑,以下是两种可行写法:

方法一:使用select+list过滤器(支持字典键判断)

{% set answerdata = data | select(lambda d: d['question_instance_id'] == question.question_id) | list %}

方法二:使用selectattr+list过滤器(更简洁的属性/键匹配)

{% set answerdata = data | selectattr("question_instance_id", "equalto", question.question_id) | list %}

简单说明:

  • select过滤器会遍历data集合,筛选符合lambda条件的元素
  • selectattr可直接针对元素的属性(或字典键)进行匹配,equalto是Jinja内置的相等判断测试器
  • list过滤器会将筛选后的迭代器转换为列表格式,和原推导式的输出结构一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:32:07