Skip to main content
 首页 » 编程设计

有条件的 Python 循环

2025年05月04日13lvdongjie

函数 f 将进行不必要的迭代。

def f(array): 
    for (i, row) in enumerate(array): 
        for (j, value) in enumerate(row): 
            if i < some_number and j > some_other_number: 
                do_something 

是否有一种惯用的方法来在 for 循环中强制执行条件?

def f(array): 
    for (i < some_number, row) in enumerate(array): 
        for (j > some_other_number, value) in enumerate(row): 
            do_something 

请您参考如下方法:

您可以使用 itertools.islice(iterable,start,stop[,step])为此:

<b>from itertools import islice</b> 
 
def f(array): 
    for (i, row) in <b>islice(</b>enumerate(array)<b>,some_number)</b>: 
        for (j, value) in <b>islice(</b>enumerate(row)<b>,some_other_number+1,None)</b>: 
            # do_something 
            pass

鉴于您在计算中不需要 i 和 j(您只需要它们进行边界检查,您甚至可以省略它们)。

from itertools import islice 
 
def f(array): 
    for row in islice(array,some_number): 
        for value in islice(row,some_other_number+1,None): 
            # do_something 
            pass