Python Custom Split Fonksiyonu

 Karakter buluncaya kadar indisi arttırıp iterable’da arama yapıyor. Bulunca konumunu kaydedip kelime_baslangic’a atıyor ve bir sonraki döngüye geçiyor.
Sonraki döngüde space oluncaya dek kelime_boyutu arttırılıyor. kelime_baslangic:kelime_baslangic+kelime_boyutu olacak şekilde kelime ekleniyor.

 

metin = input("Metin: ") + " "
kelimeler = []
indis = 0
kelime_baslangic = 0
kelime_indis = 0
while indis < len(metin) - 1:
    if " " not in metin:
        kelimeler.append(metin[0:])
        break
    if metin[indis] == " ":
        indis += 1
    else:
        kelime_baslangic = indis
        kelime_indis = indis
        kelime_boyutu = 0
        while metin[kelime_indis] != " ":
            kelime_boyutu += 1
            kelime_indis += 1
            if metin[kelime_indis].isspace():
                kelimeler.append(metin[kelime_baslangic:kelime_baslangic + kelime_boyutu])
                indis += kelime_boyutu
                kelime_indis = 0
                kelime_boyutu = 0
                break
print(kelimeler)  

İkinci örnek:

 

metin = bytearray(input("Metin: "),"utf-8","ignore")
indis = 0
kelimeler = []
while len(metin) > 0:
    for i in metin.decode():
        if i.isspace():
            kelimeler.append(metin[0:indis].decode())
            del metin[0:indis + 1]
            indis = 0
            break
        indis += 1
    if " " not in metin.decode():
        kelimeler.append(metin.decode())
        del metin[0:]
            
print(kelimeler)

Yukarıdaki ile prensip olarak aynı. Tek fark her boşluk karakterinde bytearray nesnesi sayesinde metni silip iterasyonu tekrarlaması.

Hiç yorum yok:

Yorum Gönder