我正在浏览'嵌套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
有人可以同意还是不同意我?
我知道这可能无关紧要,但如果我没有以正确的方式看待这个,我想知道原因。
答案 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)角度来看