3

「ネストされた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

誰かが私に同意または反対できますか?

これはおそらく問題ではないことはわかっていますが、これを正しく見ていない場合は、その理由を知りたい.

4

3 に答える 3

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

したがって、あなたの理解は完全に正しいです。最初の例はネストされたループではありませんが、2 番目の例はそうです。

ループ内からループを使用して関数を呼び出すことを検討することもできますが、私はそれを呼び出すことはありません。forfor

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

for x in xrange(20):
    foo( xrange(x) )
于 2013-06-12T23:44:56.513 に答える
0

ご想像のとおり、ネストされた for ループは、別の for ループ内の for ループです。あなたが与えた最初の例はネストされたforループではありませんが、2番目の例はそうです。

于 2013-06-12T23:42:27.613 に答える
0

一番下の例は、あなたが言ったようにネストされた for ループです。情報の作成者は、for ループとしてそれらを構成する他の 2 つの関数 [getPixelAt() または setColor(,)] についてもっと知っていると思います。したがって、少なくとも効率 (Big O) の観点から、例をネストします。 .

于 2013-06-12T23:44:13.363 に答える