List içinde karakter

Merhaba,
Umarım doğru yere yazmışımdır.
Şimdi ben bir list içindeki karakterleri count ile saydırmak istiyorum (len() ile değil)

ama aşağıdaki örnekteki gibi yazıldığında sonuç veriyor

fruits = [“elma”, “armut”, “şeftali”]
print (fruits.count(“elma”))

ancak
fruits = [“elma”, “armut”, “şeftali”]
print (fruits.count(“e”))

yazdığımda sonuç sıfır çıkıyor. Harf fark etmeksizin.

a = [1, 2, 3, 20, 12, 2, 25]
print(a.count(2))

bu örnekte ise sonuç veriyor. str için farklı int için farklı mı çalışıyor fonksiyon acaba?

Sizler için çok basittir mutlaka daha yeni başladım bu işlere.
Şimdiden teşekkür ederim

Merhaba aslında ikisinde de aynı çalışıyor. Şu şekilde siz bir liste verdiğinizde listenin her bir elemanı ile e harfini kontrol eder yani elma nın e ye eşit olup olmadığına bakıyor eğer her elemanın her harfi için kontrol etmek istiyorsanız bir for döngüsü kullanabilirsiniz. Sayılı olan örneğinizde 2 döndürmesinin sebebi listenizde direk 2 olan elemanlar olması yoksa burada da 20 nin 2 sini dahil etmiyor mesela. Aynı şekilde string listenizde direk e harfi bulunursa onu da sayar.
Bahsettiğim foru şöyle yapabilirsiniz:

list = ['elma','armut','şeftali']
toplam = 0

for i in list:
    toplam += i.count("e")
    
print(toplam)

burada for ile listenin her elemanın içine giriyoruz ve elemanın e harfini içerip içermediğini kontrol ediyoruz.

Teşekkür ederim @BansH dostum. Yani string bir listede “elma” da “e” olması önemli değil “elma” != “e” olduğu için sonuç 0 oluyor. Sayılabilmesi için “e” nin listede tek başına bir veri olması lazım. Herhalde doğru anladım. Kolay gelsin

1 Beğeni

Aynen öyle. Eğer listedeki her elemanın tüm harflerini kontrol etmek istiyorsanız da for ile hepsini gezebilirsiniz verdiğim örnekteki gibi.

1 Beğeni