Merhaba foruma yeni üye oldum ve listelerdeki indeks metodunun bir benzerini yazmaya çalışıyorum. Program bir listedeki tekrarlamayan öğeleri alıp bir sözlüğe anahtar olarak atayıp, karşılarına liste içerisindeki indeks numaralarını liste olarak alacak. Bunun için kodları yazdım. Hatta mantık hatası da bulamıyorum ama tam listeleri sözlük içerine aktaracağım sırada listeleri boş olarak atıyor.
lst=[1,2,3,4,5,2,3,1,3,3,2,4,5]
s_ind=dict()
l_ind=list()
for i in range(len(lst)):
if lst[i] in s_ind.keys():
continue
l_ind.append(i)
for j in range(i+1,len(lst)):
if lst[i]==lst[j]:
l_ind.append(j)
s_ind[lst[i]]=l_ind
l_ind.clear()
print(s_ind)
…
Çıktı olarak şunu veriyor:
Araya listem doğru oluşmuş mu diye print kodu eklediğim zaman
lst=[1,2,3,4,5,2,3,1,3,3,2,4,5]
s_ind=dict()
l_ind=list()
for i in range(len(lst)):
if lst[i] in s_ind.keys():
continue
l_ind.append(i)
for j in range(i+1,len(lst)):
if lst[i]==lst[j]:
l_ind.append(j)
print(l_ind) # Listem doğru oluştumu diye buraya yazdım
s_ind[lst[i]]=l_ind
l_ind.clear()
print(s_ind)
Listemin doğru oluştuğunu görüyorum fakat sözlükte ilgili yere aktarırken sorun oluşturuyor. Bunun sebebi nedir acaba?