Python Programming

Python’da Gelişmiş String Bölme: Çoklu Ayırıcı Teknikleri

Spread the love

Python programlamada birden fazla ayraç kullanarak dizeleri bölmek sık karşılaşılan bir işlemdir. Bu makale, çeşitli senaryolar için çözümler sunarak, bunu verimli ve sağlam yöntemlerle ele almayı inceliyor.

İçerik Tablosu

İki Ayraçla Dize Bölme

Basit bir örnekten başlayalım: Bir dizeyi, diyelim ki ‘,’ ve ‘;’ ayraçlarını kullanarak bölmek.


my_string = "apple,banana;orange,grape;kiwi"

Doğrudan, ancak daha az verimli bir yaklaşım, yerleşik split() yöntemine iç içe çağrılar içerebilir. Bununla birlikte, daha zarif ve sağlam bir çözüm düzenli ifadeleri kullanır.


import re

my_string = "apple,banana;orange,grape;kiwi"
result = re.split(r"[,;]", my_string)
print(result)  # Çıktı: ['apple', 'banana', 'orange', 'grape', 'kiwi']

r"[,;]" düzenli ifadesi, ‘,’ veya ‘;’ ile eşleşen bir karakter kümesi tanımlar. re.split(), bu ayraçların her bir oluşumunda dizeyi verimli bir şekilde böler.

Birden Fazla Ayraçla Dize Bölme

Bunu daha fazla ayraçla çalışacak şekilde genişletmek basittir: Sadece köşeli parantezler içindeki karakter kümesine ekleyin.


import re

my_string = "apple,banana;orange:grape;kiwi,mango"
result = re.split(r"[,;:]", my_string)
print(result)  # Çıktı: ['apple', 'banana', 'orange', 'grape', 'kiwi', 'mango']

Bu yaklaşım, herhangi bir sayıda ayraca etkili bir şekilde ölçeklenir ve bunu çok esnek bir çözüm haline getirir.

Boşluk ve Birden Fazla Ayraçla Çalışmak

Boşluğu bir ayraç olarak eklemek için, düzenli ifadeye s+ (bir veya daha fazla boşluk karakteri) ekleyebiliriz.


import re

my_string = "apple , banana ; orange : grape ; kiwi  , mango"
result = re.split(r"[,;:s]+", my_string)
print(result)  # Çıktı: ['apple', 'banana', 'orange', 'grape', 'kiwi', 'mango']

+ niceleyici, ardışık birden fazla boşluk karakterinin tek bir ayraç olarak ele alınmasını sağlar.

Alternatif Yaklaşım: `split()`’i yinelemeli olarak kullanma

Düzenli ifadeler zarif bir çözüm sunarken, alternatif bir yaklaşım yerleşik split() yöntemini yinelemeli olarak kullanmayı içerir. Herhangi bir nedenle düzenli ifadelerden kaçınıyorsanız bu yöntem faydalı olabilir.


my_string = "apple,banana;orange:grape;kiwi,mango"
delimiters = [',', ';', ':']
for delimiter in delimiters:
    my_string = my_string.replace(delimiter, ' ')
result = my_string.split()
print(result) # Çıktı: ['apple', 'banana', 'orange', 'grape', 'kiwi', 'mango']

Bu yöntem, her bir ayracı bir boşlukla değiştirir ve ardından dizeyi boşluklara göre böler. Düzenli ifadelere daha az aşina olanlar için düzenli ifade yaklaşımından daha az özlü ancak daha kolay anlaşılır olabilir.

Özetle, düzenli ifadeler, Python’da birden fazla ayraca göre dizeleri bölmek için güçlü ve verimli bir yöntem sunar. Bununla birlikte, yerleşik split()‘i kullanan yinelemeli yaklaşım, düzenli ifadelerin daha az arzu edilebilir olduğu durumlar için daha basit bir alternatif sağlar. En iyi yöntemi seçmek, belirli ihtiyaçlarınıza ve kodlama stilinize bağlıdır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir