Python中的空循环条件
在Django模板中,for循环
有一个empty
条件,这个条件只有在你循环的对象是空的时候才会被触发。
比如:
{% for x in my_list %}
#do something
{% empty %}
<p> my_list is empty </p>
{% endfor %}
在这里,如果我的列表my_list
是空的,那么它就会打印出my_list is empty
。
在Python中有没有类似的东西呢?
我现在使用的是if-else条件,但看起来不太好。我想找一个不需要用if-else条件的解决方案。
我现在的代码是:
if len(my_list):
for x in my_list:
doSomething()
else:
print "my_list is empty"
2 个回答
2
如果你确定这个迭代器不会返回某个特定的值,比如说 None
或者 False
,那么你可以这样做:
x = False
for x in my_list:
doSomething(x)
if x is False:
print "my_list is empty"
21
你需要继续使用 if
语句,不过可以把它简化一下:
for x in my_list:
doSomething()
if not my_list:
print "my_list is empty"
因为 my_list
是空的,所以 for
循环的部分根本不会执行。而且在布尔上下文中,空列表被认为是 False
。