Merhaba kodun amacı gönderilen listeyi öncelikle bir değerin tekrar edilmesine göre sıralamak, daha sonra ise listedeki geliş sırasına göre sıralamak.
[4, 6, 2, 2, 6, 4, 4, 4] şeklinde bir liste gönderdiğimde 4,4,4,4,6,6,2,2 çıktısını almak istiyorum.
[4, 2, 6, 6, 2, 4, 4, 4] şeklinde bir liste gönderdiğimde ise 4,4,4,4,2,2,6,6 gibi bir çıktı almak istiyorum fakat başaramadım.
Yazdığım kod şu şekilde;
def frequency_sort(li):
yeni = []
for i in li:
if (yeni.count((i,li.count(i))) < 1):
yeni.append((i,li.count(i)))
son = []
for i,j in yeni:
while j > 0:
son.append(i)
j-=1
return son
frequency_sort([2,2,2,3,1,2,4,1])
Benim yazdığım koddaki çıktı ise şu şekilde oluyor: (2,2,2,2,3,1,1,4)
Doğru çıktı: (2,2,2,2,1,1,3,4 ) olmalıydı
Özetle listedeki elemanları önce listede tekrar etmesine, sonra listedeki sırasına göre sıralamak istiyorum ancak Counter modülünü kullanmak istemiyorum bu şekilde döngülerle yapmak istiyorum.