Stringde harf arama

arkadaşlar bir örnek çözüyordum da bayağı bir yavaşlattı beni.
amacım bir listedeyi kelimelerin içindeki sesli harfleri bulmak. örneğin :
sehirler = [“istanbul”,“tekirdağ”,“erzurum”]
istanbul için sonucun 3
izmir için 2
ankara için 3 çıkmasını istiyorum.
count fonksiyonunu kullanınca sadece 1 harf için sonuç alabiliyorum. diğer harfler için ne yapabilirim?

1 Beğeni

Daha kısa bir yoluda olabilir tabii ama benim aklıma şuanlık böyle bir şey geldi umarım yardımcı olur


sesli_harfler= "aeıioöuü"

sehirler = ["istanbul","tekirdağ","erzurum","emre"]

c = 0

for i in sehirler:
    c = 0
    for b in i:
        if b in sesli_harfler:
            c +=1
    print("Geçen Sesli Harf {} >>>> {}".format(c,i))

Kodda anlamadığın bir yer olursa sorabilirsin :slight_smile:

2 Beğeni

aslında çok iyi anlatmışsın da döngü kısmını anlayamadım ya sana zahmet bir anlatabilir misin ?
özellikle döngünün içindeki döngüyü.

ilk aldığımız döngüde şu şekilde alıyor

istanbul 
tekirdağ
erzurum
emre 

fakat bizim şu şekilde almasını istiyoruz ki harfleri incelememiz gerekiyor

i
s
t
a
n
b
u
l

şeklinde almamız gerekiyor bu yüzden tekrardan bir döngüye aldığım zaman bu istediğim çıktıyı elde ediyorum
ve artık if bloğuma geçebilirim :slight_smile:

1 Beğeni

Soyle anlatayim:

sesli_harfler= "aeıioöuü"

sehirler = ["istanbul","tekirdağ","erzurum","emre"]

sesli_harf_sayisi = 0

for sehir in sehirler:
    sesli_harf_sayisi = 0
    for harf in sehir:
        if harf in sesli_harfler:
            sesli_harf_sayisi +=1
    print("Geçen Sesli Harf {} >>>> {}".format(sesli_harf_sayisi,sehir))
3 Beğeni

iyi anlatmışsınız :)) teşekkürler açıkladıgınız için

ikinizinde eline sağlık. teşekkür ederim anladım.

Düzenli ifadeleri de kullanabilirsiniz:

>>> import re
>>> re.findall('[aeıioöuü]', 'İstanbul', re.IGNORECASE)
['İ', 'a', 'u']
>>> re.findall('[aeıioöuü]', 'İzmir', re.IGNORECASE)
['İ', 'i']
>>> re.findall('[aeıioöuü]', 'Ankara', re.IGNORECASE)
['A', 'a', 'a']

"Bazıları, bir sorunla karşı karşıya kaldıklarında şunu der: ‘Evet, burada düzenli ifadeleri kullanmam gerekiyor.’ İşte onların bir sorunu daha vardır artık…”
-Jamie Zawinski

1 Beğeni

Elinize sağlık sanki algoritmasını sormuş anladım ben kullanılabilir sağolun :slight_smile: bilgi için

1 Beğeni

Napıyım, daha kısa ve öz olacaktı. :smile:

1 Beğeni