harfler="abcçdefgğhıijklmnoöprsştuüvyz"
çeviri={i:harfler.index(i) for i in harfler}
isimler=[]
def sırala(kelime):
return([çeviri.get(kelime[i]) for i in range(len(kelime))])
item=input("küçük harflerle kelime girin : ")
isimler=[item]
print(*sorted(isimler,key=sırala),sep="\n") # YazBel'örneğinde çalışan"sorted()"burada çalışmıyor!
Yazdığınız kodlarda ufak bir değişiklik yapmak gerekiyor:
harfler = "abcçdefgğhıijklmnoöprsştuüvyz"
ceviri = {i: harfler.index(i) for i in harfler}
isimler = [] # Bu listeyi kullanmasanız da olur.
def sirala(kelime):
# return ([...]) <--- Listeyi parantez içine almaya gerek yok.
return [ceviri.get(kelime[i]) for i in range(len(kelime))]
item = input("küçük harflerle kelime girin:")
isimler += item # <-- Düzeltilmesi gereken kısım
# isimler listesini kullanmazsanız,
# son basamağı aşağıdaki gibi yazmanız gerekir:
# print(*sorted(item, key=sirala), sep="\n")
print(*sorted(isimler, key=sirala), sep="\n")
ilgilendiğin için teşekkürler emeğine sağlık.ancak sonuç hala başarısız ne yazık ki…değiştirerek denedim.sıralamak istediğim kelimeler: veli, zeynep, ali, hasan yani "input()"a girdiğim kelimeler.çok teşekkürler,iyi akşamlar.
Sormak isterim; acaba aldığınız hata aşağıdakine mi benziyor?
TypeError: unorderable types: NoneType() < int()
Şayet input()'a, sözlükte belirttiğiniz harfler dışında -boşluk gibi- karakterler giriyorsanız yukarıdaki hatayı alırsınız.
Aşağıdaki kodları çalıştırmayı deneyin bir de:
def sirala():
def f(kelime):
harfler = "abcçdefgğhıijklmnoöprsştuüvyz"
ceviri = {i: harfler.index(i) for i in harfler}
return [ceviri.get(kelime[i]) for i in range(len(kelime))]
sira = input("Kelime girin:").split(" ")
return ", ".join(sorted(sira, key=f))
print(sirala())
araya","virgül koyuyordum kaldırdım çalıştı TEŞEKKÜRLER! SAĞOL.
Rica ederim, iyi akşamlar.