什么是嵌套for循环?

时间:2013-06-12 23:40:49

标签: python for-loop nested-loops

我正在浏览'嵌套for循环'的一些示例,下面的代码作为示例给出。但这在技术上不是 for 循环吗?

xLimits = range(getWidth(pic))
for x in xLimits:
    pixel = getPixelAt(pic, x, 0)
    setColor(pixel, green)

嵌套看起来不是这样吗?

for x in xLimits:
    for y in yLimits:
        code
        code
        code

有人可以同意还是不同意我?

我知道这可能无关紧要,但如果我没有以正确的方式看待这个,我想知道原因。

3 个答案:

答案 0 :(得分:2)

嵌套循环(任何类型)是循环内的循环。重要的是要意识到内部循环将重新运行外部循环的每次迭代。

例如:

for i in xrange(3):
    for j in xrange(2):
        print 'i={0} j={1}'.format(i,j)

输出:

i=0 j=0    
i=0 j=1
i=1 j=0    <-- inner loop restarts
i=1 j=1
i=2 j=0    <-- inner loop restarts
i=2 j=1

所以你的理解是完全正确的。第一个例子不是嵌套循环,而第二个例子是。

你可以可能考虑从for循环中调用一个带有for循环的函数,一个“嵌套for循环”,尽管我永远不会称之为:

def foo(r):
    for i in r:
        do_something()

for x in xrange(20):
    foo( xrange(x) )

答案 1 :(得分:0)

嵌套for循环是另一个for循环中的for循环,如您所愿。你给出的第一个例子不是嵌套的for循环,而是第二个例子是。

答案 2 :(得分:0)

最底层的例子是你所说的嵌套for循环。我猜想信息的作者知道更多关于另外两个被称为函数[getPixelAt()或setColor(,)]的东西,它们构成了循环,从而使示例嵌套,至少从效率(Big O)角度来看