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

如何仅用Jinja2内置过滤器判断list1元素全在list2中?

问题描述

给定两个列表:

list1 = ['playing', 'off', 'off', 'off']
list2 = ['off', 'idle', 'paused']

要求仅借助Jinja2内置过滤器编写单行测试逻辑,返回True或False:当list1的所有元素都能在list2中匹配到时返回True,只要list1中有至少一个元素无法在list2中匹配到就返回False。

示例说明:

# 示例 1:
list1 = ['playing', 'off', 'off', 'off']
list2 = ['off', 'idle', 'paused']    
result = False

# 示例 2:
list1 = ['playing', 'off', 'playing', 'off']
list2 = ['off', 'idle', 'paused']    
result = False

# 示例 3:
list1 = ['idle', 'off', 'paused', 'off']
list2 = ['off', 'idle', 'paused']    
result = True
解决方案

可以通过Jinja2内置的map和all过滤器组合实现需求,单行代码如下:

{{ list1 | map('in', list2) | all }}

逻辑解释

  • map过滤器:传入'in'测试和list2作为参数,遍历list1的每一个元素,判断当前元素是否存在于list2中,最终生成一个由布尔值组成的迭代器。
  • all过滤器:检查上述迭代器里的所有值是否全为True,如果是则返回True,否则返回False。

内容的提问来源于stack exchange,提问作者t.abraham

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 03:16:03