是否有一种更干净的方法来处理(连续)在循环中的独家使用



我是python的新手(我只使用c(,并且我发现了诸如/否的新循环...所以我想知道我是否忽略了一个清洁工处理此循环的方法:

flag = 0
for i in range (n):
    if not flag and condition:
        statement_1
        flag = 1
    if flag and condition:
        statement_2

我需要保留计数,因为我知道至少一个元素可以满足条件,因此当我发现它时,我会做statement_1。然后,如果另一个元素也能满足条件,我将做statement_2。

flag = False  # I prefer booleans
for i in range(n):
    if condition(i):  # We always need it to be True
        if not flag:
            statement(i)
            flag = True
        else:
            statement2(i)
到目前为止
foo = range(n) # any iterable
iterfoo = iter(foo)
initial_value = next(i for i in iterfoo if condition(i))
statement(initial_value)
for i in iterfoo:
    if condition(i):
        statement2(i)

现在这两个,如果我不丢失某些事情(应该以不同的方式做同样的事情,所以这是您的选择,尽管它也为您节省了2行代码,因为您不会做第一行在您的实际代码中,我投票赞成第二个片段:D

相关内容

  • 没有找到相关文章

最新更新