python中for else循环_Python中的For循环和else语句

可以将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.")

有关详细信息,请查看以下内容:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值