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?
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
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
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))
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
Elinize sağlık sanki algoritmasını sormuş anladım ben kullanılabilir sağolun bilgi için
Napıyım, daha kısa ve öz olacaktı.