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
- Birden Fazla Ayraçla Dize Bölme
- Boşluk ve Birden Fazla Ayraçla Çalışmak
- Alternatif Yaklaşım: `split()`’i yinelemeli olarak kullanma
İ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.