paragraf = """Kendisinden söz etmeyi kötü görmek,
yasak etmek adet olmuştur;
çünkü kendinden söz etmek her zaman kendini övmek gibi görünür.
Kendini övmek ise herkesin zıddına gider;
ama kendinden söz etmeyi yasak etmek, çocuğun burnunu silecek yerde,
burnunu koparmak olur.
Bu tedbirde insan kardan çok zarar görür."""
sozluk = {}
kelimeler = set(paragraf.split())
for kelime in kelimeler:
sozluk.update({kelime: paragraf.count(kelime)})
print("Öncesi:", sozluk)
def bubblesort(sozluk):
yerel_sozluk = {}
j, k = 0, 0
items = list(sozluk.items())
for _ in range(len(sozluk)):
for i in range(len(sozluk)):
k = items[i][1]
if k > j and i != 0:
items[i - 1], items[i] = items[i], items[i - 1]
j = k
for key, item in items:
yerel_sozluk.update({key: item})
return yerel_sozluk
print("Sonrası:", bubblesort(sozluk))
Öncesi: {'söz': 3, 'kötü': 1, 'burnunu': 2, 'herkesin': 1, 'ise': 1, 'çok': 1, 'her': 2, 'kendinden': 2, 'zıddına': 1, 'kardan': 1, 'kendini': 1, 'çocuğun': 1, 'etmeyi': 2, 'adet': 1, 'koparmak': 1, 'görünür.': 1, 'olur.': 1, 'zaman': 1, 'zarar': 1, 'olmuştur;': 1, 'yerde,': 1, 'görür.': 1, 'gibi': 1, 'Kendini': 1, 'gider;': 1, 'ama': 2, 'etmek,': 1, 'yasak': 2, 'tedbirde': 1, 'övmek': 2, 'Kendisinden': 1, 'silecek': 1, 'etmek': 3, 'çünkü': 1, 'görmek,': 1, 'Bu': 1, 'insan': 1}
Sonrası: {'söz': 3, 'etmek': 3, 'burnunu': 2, 'her': 2, 'kendinden': 2, 'etmeyi': 2, 'ama': 2, 'yasak': 2, 'övmek': 2, 'kötü': 1, 'herkesin': 1, 'ise': 1, 'çok': 1, 'zıddına': 1, 'kardan': 1, 'kendini': 1, 'çocuğun': 1, 'adet': 1, 'koparmak': 1, 'görünür.': 1, 'olur.': 1, 'zaman': 1, 'zarar': 1, 'olmuştur;': 1, 'yerde,': 1, 'görür.': 1, 'gibi': 1, 'Kendini': 1, 'gider;': 1, 'etmek,': 1, 'tedbirde': 1, 'Kendisinden': 1, 'silecek': 1, 'çünkü': 1, 'görmek,': 1, 'Bu': 1, 'insan': 1}
-
bubblesort isimli bir fonksiyon tanımlıyoruz.
-
fonksiyon içerisinde yerel bir sözlük oluşturuyoruz.
-
Parametre olarak aldığımız sözlüğün key ve itemlerini içeren bir liste oluşturuyoruz ve bunu items isimli değişkene atıyoruz.
-
items = [("söz", 3), ("kötü", 1), ..., ("ise", 1)]
gibi bir şey oluyor. -
Görüldüğü üzere her bir key ve item, bir tuple içerisinde yer alıyor. Buna göre kolaylıkla item değerine ulaşabiliriz.
-
k = items[i][1]
, o anki indekse göre items içerisindeki tuple’dan item değeri çekiliyor. Önceki item değeri ile karşılaştırılıyor. (if k > j
) -
Eğer mevcut item değeri, önceki item değerinden büyük ise, bu iki indeksteki tuple’lar yer değiştiriyor. (
items[i - 1], items[i] = items[i], items[i - 1]
) -
Bu işlemleri items’in uzunluğu kadar kez tekrarlıyoruz. Son olarak items içerisindeki her bir key ve itemi sırasıyla
yerel_sozluk
içerisine kaydediyoruz.
for key, item in items:
yerel_sozluk.update({key: item})