gpt4 book ai didi

python - Python 中的 for 循环和 else 语句

转载 作者:行者123 更新时间:2023-11-28 19:39:27 24 4
gpt4 key购买 nike

我在 python 的 jinja2 模板框架中使用了一些条件循环。我想知道是否有办法在 jinja2 之外做同样的事情,类似于:

{% for i in a if i == 1 %}
{{ i }}
{% else %}
no items
{% endfor %}

当我在普通的 ol' python 中尝试这个时,它不喜欢它

>>> for i in a if i == 1:

SyntaxError: invalid syntax

我想做的是这样的:

for i in a if i == 1:
print i
else:
print 'no matches found'

最佳答案

你已经非常接近了,所需要的只是一个列表理解,它形成一个列表,其中只有 a 的值等于 1。

在 python 中,for..else 语句 is valid

for i in [x for x in a if x == 1]:
print i
else:
print 'no matches found'

这将打印 a 中所有 1 的值,除非没有找到。然后打印 no matches found

正如 davidism 所提到的,为了防止对整个列表进行中间评估,您可以使用生成器而不是 LC:

for i in (x for x in a if x == 1):
print i
else:
print 'no matches found'

关于python - Python 中的 for 循环和 else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24397140/

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