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

如何在Jinja中用类列表推导式过滤指定长度的子列表?

Jinja中过滤特定长度子列表的方法

要在Jinja中实现类似列表推导式的效果,过滤列表的列表中长度为指定值的子列表,你需要使用select过滤器配合length测试,而非selectattr(后者针对对象属性,不适合处理列表)。

正确写法示例

{% set lisname = [['a','b','c'],['d','e'],['a']] %}
{# 过滤出长度为3的子列表 #}
{{ lisname|select('length', 3)|list }}
{# 获取符合条件的子列表数量 #}
{{ lisname|select('length', 3)|list|length }}

代码说明

  • select('length', 3):遍历lisname中的每个子列表,检查其长度是否等于3,保留符合条件的元素。
  • |list:将select返回的迭代器转换为列表(若仅需统计数量,可省略此步直接追加|length)。

输出结果

  • 过滤子列表的输出:[['a', 'b', 'c']]
  • 统计数量的输出:1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:15:56