İç İçe Döngüde Tam olarak Anlamadığım Durum

Selamlar sevgili üstatlar, şu aşağıdaki iki döngünün sonuçlarını bir türlü anlayamadım.

Tek döngüde sorun yok, ama iç içe döngü olduğunda yok abi anlamıyorum :S (En azından bu örnek için)

Örnek 1 ;

dizi = []

for i in range(5):

    for j in range(i):

        dizi.append((i, j))

print(dizi)

Sonuç ;

[(1, 0), (2, 0), (2, 1), (3, 0), (3, 1), (3, 2), (4, 0), (4, 1), (4, 2), (4, 3)]

Bir de şu kodlara ve sonuca bakalım ;
Örnek 2 ;

dizi = []

for i in range(5):

    for j in range(5):

        dizi.append((i, j))

print(dizi)

Sonuç ;

[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4)]

Şimdi bu 2. Örnekte mantık şu şekilde sanırım ;

  1. Döngüye geliyor > for i in range(5):
    i 0’ değerini alıyor ve hemen altındaki döngüye geçiyor, j 4 olana kadar dönüyor yani ; 0,0 0,1 0,2, 0,3, 0,4 diye gidiyor. Sonra i 1 oluyor yine j aynı şekilde 1,0, 1,1 vs vs diye ilerliyor. 2. Örnek tamam güzel (eğer doğru anlayıp anlatabildiysem)

Ama 1. Örnek (Örnek1) neden böyle bir sonuç veriyor? Cidden hiç anlayamadım, lütfen yardım eder misiniz?

[(1, 0), (2, 0), (2, 1), (3, 0), (3, 1), (3, 2), (4, 0), (4, 1), (4, 2), (4, 3)]

Yani 2. örnekte, 0,0, 0,1 giderken bunda neden 1,0, 2,0 diye ilerliyor :S

Merhaba.
Birinci döngünün altında olan döngüde birinci döngüden üretilen i kullanıldığı için birinci döngünün altındaki döngü i-1 şeklinde dönmeye başlıyor ve listeye ekliyor.

1 Beğeni

Değerli yanıtınız için teşekkürler :slight_smile: Hocam tamamdır şimdi anladım ben olayı :smiley: çok teşekkürler

1 Beğeni