for
döngü giriş iterable her değer atama bir Hedef değişken olarak a[-1]
kullanır Bu hedefe a
listesi, a[-1]
. Bu, aynı zamanda aynı listedeki son öğe olur.
Yani liste döngü içinde her adımda değiştirir:
>>> a = [0, 1, 2, 3]
>>> for a[-1] in a:
... print a
...
[0, 1, 2, 0] # assigned a[0] == 0 to a[-1] (or a[3])
[0, 1, 2, 1] # assigned a[1] == 1 to a[-1]
[0, 1, 2, 2] # assigned a[2] == 2 to a[-1]
[0, 1, 2, 2] # assigned a[3] == 2 (since the previous iteration) to a[-1]
tek ama-son yineleme koyar (a[-1]
içine veya a[-2]
) a[3]
içine a[2]
atar ve bu neden, ne zaman olduğunu son yineleme gerçekleşirse, numaralı telefonu tekrar 2
görürsünüz.
Bkz. for
loop grammar; atama hedefi için genel bir target_list alır, tıpkı bir assigment statement gibi. Ödevlerde yalnızca basit adlarla sınırlı değilsiniz ve for
döngüsünde bulunmuyorsunuz.
Yirmi yıllık Python, ve hiç bir zaman için bir "x" yapmayı hiç düşünmedim. Teşekkürler :-) – RemcoGerlich
Aynı burada; Her zaman, keyfi bir değerden ziyade bir isim olması gerektiğini varsaydım. – chepner
@chepner: Sadece bir hedef listesi. Yani 'modulename.global_var' da geçerlidir. Veya 'sözlük [anahtar]'. Ya da bunların bir listesi .. –