merhabalar benim bir sorum olucak
a=[0,1,2,3]
for a[-1] in a:
print(a[-1])
0
1
2
2
ve birde print(a[-1]) yerine print(a) yazdigimizda soyle bir sey oluyor
[0,1,2,0]
[0,1,2,1]
[0,1,2,2]
[0,1,2,2]
neden boyle oluyor anliyamadim yanitlarsaniz cok sevinirim
print(a[-1]) a listesinin -1. elemanını yazdırıyor (son elemanını).
print(a) ise a listesini.
for a[-1] in a döngüsü ise a listesindeki tüm elemanları dolaşıp listenin son elemanını 0,1,2 şeklinde değiştiriyor.
Siz tam olarak ne olmasını istiyorsunuz?
Ayrıca eğer listenin son elemanını değiştirmek gibi bir niyetiniz yoksa for i in a gibi bir döngü de deneyebilirsiniz. Belki istediğinizi verebilir.
Bu cok, cok yanlis bir kod parcasi. for’daki hedef listesi (a[-1] kismi) sadece ciplak tanimlayicilardan (“degisken isimleri”; a, b, x, y, vs.) olusmali. Aksi takdirde, dunya uzerindeki for loop’larinin %99’undan farkli olarak, iki is birden yapmis oluyoruz. Bu kodu
for x in a:
a[-1] = x
...
seklinde yazmamak icin gecerli bir sebep varsa bile su anda aklima gelmiyor.