概述
可以将else块与循环语句一起使用。如果循环流没有受到诸如break之类的语句的干扰,它将落入else块。我在下面提供了一个简单的质数查找器:for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print n, 'equals', x, '*', n/x
break
else:
# loop fell through without finding a factor
print n, 'is a prime number'
^{pr2}$
注意:如果您将for/else语句与列表理解结合起来,您可以实现您想要的目标。
简单列表理解:# For generating a list of odd numbers from 1 to 10
[n for n in range(1, 10) if n % 2 == 1]
# Generator version preventing evaluation of the whole list at once.
(n for n in range(1, 10) if n % 2 == 1)
这样,您将使用列表理解方法生成一个iterable容器,并使用for/else循环对其进行迭代:for n in [n for item_container if n == 1]
# Do work
pass
else:
# Loop falls through if the flow isn't disturbed
# Do some other work
pass
编辑:您所要求的只是检查元素是否在容器中,然后执行语句。效率极低。使用CPython(Python最常见的实现)中的set数据结构可以更快地完成这项工作。在在平均情况下和最坏情况下,您的代码具有O(n)复杂性。在
set成员检查的平均值是O(1),最坏的情况是O(n)(dictionary有类似的实现)。在
因此,下面的代码将比快得多:element = 9
container = set(range(1, 10))
print("Match Found." if element in container else "Match Not Found.")
有关详细信息,请查看以下内容:
最后
以上就是美丽河马为你收集整理的python中for else循环_Python中的For循环和else语句的全部内容,希望文章能够帮你解决python中for else循环_Python中的For循环和else语句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复