如何在Jinja2的groupby分组中获取最大值?
在Jinja2中从groupby分组结果里获取最大值
嘿,这事儿其实挺简单的!你已经用groupby('var2')把数据按var2字段分好组了,现在要拿到每个分组里var字段的最大值,只需要对每个分组的列表数据用Jinja2的max过滤器,指定要取最大值的属性就行。
直接给你修改后的模板代码:
{% for group in data|groupby('var2') %} 分组值(var2): {{ group.grouper }} | 该组var的最大值: {{ group.list|max(attribute='var') }} <br> {% endfor %}
给你拆解下关键部分:
group.grouper:就是你分组的依据,也就是当前组对应的var2数值group.list:这个分组下的所有原始数据项集合,对它使用max(attribute='var'),Jinja2会自动遍历这个列表,找出var字段值最大的那一项,然后返回它的var值
运行之后,你会看到这样的输出:
分组值(var2): 2 | 该组var的最大值: 3
分组值(var2): 4 | 该组var的最大值: 3
如果之后你要取其他字段的最大值,只把attribute里的字段名换成你需要的就行,灵活性拉满~
内容的提问来源于stack exchange,提问作者spitfiredd
相关产品推荐
相关产品推荐

