gpt4 book ai didi

python - 过滤循环中的循环变量

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:29 25 4
gpt4 key购买 nike

我想根据 loop 变量在 groupby 过滤器上过滤 for 循环。这就是我正在做的:

{% for group in list_of_dicts | groupby('attribute') -%}
{% if loop.index < 9 %}
...
{% endif %}
{% endfor %}

它按我预期的那样工作。在文档中有这样的语法:

{% for user in users if not user.hidden %}
<li>{{ user.username|e }}</li>
{% endfor %}

在过滤器上循环时如何使用上面提到的语法?我的意思是像下面这样,它引发了一个 UndefinedError:

{% for group in list_of_dicts | groupby('attribute') if loop.index < 9 -%}
...
{% endfor %}

UndefinedError: 'loop' is undefined. the filter section of a loop as well as the else block don't have access to the special 'loop' variable of the current loop. Because there is no parent loop it's undefined. Happened in loop on line 18 in 'page.html'

最佳答案

过滤器像在普通 Python LC 中一样工作(您可以只访问 group)。

在这种情况下使用过滤器无论如何都没有意义。例如。分组的 list_of_dicts 包含比方说 3000 个元素,因此您进行了 3000 次迭代,但您只需要 9 个。您应该对组进行切片:

{% for group in (list_of_dicts | groupby('attribute'))[:9] -%}
...
{% endfor %}

(假设过滤器返回一个列表)

关于python - 过滤循环中的循环变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10246521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com