Kodları şu şekilde açıklayabilirim. ifade değişkeni, yukarıdaki 3 karakter dizisini aralarında " " olmak üzere birleştirdiğimiz bir karakter dizisi. Şu şekilde de birleştirebilirdik
ifade = a + " " + b + " " + c
-------------------------------
ifade = "bende 1 kilo elma var sende 2 kilo ayva var onda 2 kilo elma var
Böyle yapmamızın sebebi, count() metodu yardımıyla karakter dizisi içerisinde sayma işlemini tek seferde yaptırmak. 3 karakter dizisini ayrı ayrı incelemek yerine birleştirip öyle işlem yapıyoruz.
for döngüsünde, ifade değişkenimizi boşluktan parçalayıp liste haline getiriyoruz, ki her elemanının üzerinden geçip saydırmak için
>>> ifade.split()
['bende', '1', 'kilo', 'elma', 'var', 'sende', '2', 'kilo', 'ayva', 'var', 'onda', '2', 'kilo', 'elma', 'var']
Şu kısım, eğer bir kelimenin üzerinden geçip te sözlüğe eklemediysek ekleyelim diye kontrol etmek içindir.
if(result.get(i,None) == None):
Bir sözlüğün içerisinde i’yi arayıp, varsa kendisini değilse None döndürme işlemini yaptık. Eğer yoksa None değerini döndürecektir. Madem sözlüğümüzde yok, biz de karakter dizimiz üzerinde count() ile i’yi saydırıp, 2’den fazla ise sözlüğümüze koyalım dedik. Mesela o anda ‘i’ değeri, “elma” olsun
result["elma"] = ifade.count("elma")
Böylece sözlüğümüze “elma” ifadesini, 2 değeriyle beraber kaydettik(2 adet elma kelimesi olduğu için)
Umarım anlaşılır olarak anlatmışımdır. Anlamadığınız yeri tekrar tekrar sorun lütfen. İyi forumlar.
Ek olarak, sözlük yapıları hakkında bilginiz yoksa biraz araştırıp bakarak kodu anlayabilirsiniz sanırım.