Python’da partition() nasıl kullanılır?

Oğuzhan Çelikarslan
2 min readNov 11, 2020

--

Bu methodu, Python’da bildiğimiz split() methoduna bir alternatif olarak görebilirsiniz. Bir parametre alır, bu alınan parametreye göre yazının içinde arama yapar. Eğer aranan kelimeyi bulursa, arama sonucunda bize 1 adet tuple döndürür. Bu tuple, 3 adet veriden oluşur. 1. veri bulunan kelimenin solunda kalan yazılar. 2. veri bulunan kelimenin bir diğer değişle arama yapılan kelimenin kendisi. 3. veri ise bulunan kelimenin sağ tarafında kalan parça.

Nasıl uygulayabiliriz?

Bu partition() bir method olduğundan dolayı bir obje üzerinden çağırılmalıdır. Bağımsız bir fonksiyon olarak direkt kullanamayız.

Bir örnek sonucunda ki çıktıyı birlikte görelim. Aşağıda name adında değişken tanımladım. Değişken içeriği benim adım oğuzhan. Daha sonra partition kullanarak adım substringini aratmak istedim. Arama sonucunda bana bir adet tuple dönmüş oldu. Bu tuple’ı incelediğimizde sol tarafta bulunan kelimenin solunda kalan veriler, sağ tarafta ise adım kelimesinin sağında kalan parça bulundu.

Peki ya aranan veri bulunmazsa?

Şimdi gelelim birde aradığımız veriyi bulamayalım. Örneğin hasan kelimesini kullanarak bir arama yapalım. Aşağıda ki örnekte de görüldüğü gibi, name değişkenini komple birinci parametreye koydu. 2. ve 3. parametre boş bırakıldı.

Partition ve Split Karşılaştırması

Hem split() hemde partition() methodu bir stringi parçalara ayırır. Aralarında ki farkı görmek için aşağıda ki örneği beraber inceleyelim.

İlk örnekte partititon kullanıldı. Partition ‘is’ ifadesini bir kere bulur ve bulduğu yerden direkt olarak ayırıp, yukarıda anlattığımız gibi bize bir tuple döndürür. Dikkat edilecek bir diğer nokta bulunan kelime bu tuple’ın tam ortasında yani içinde bulunmaktadır.

string = "Deepak is a good person and Preeti is not a good person."  
print(string.partition('is '))

Çıktı:

('Deepak ', 'is ', 'a good person and Preeti is not a good person.')

Diğer taraftan splite baktığımızda, “is ” kelimesi her seferinde bulunacaktır ve buralarda itibaren bölme işlemi yapılacaktır. Daha sonra geriye liste döndürecektir. Dikkat etmemiz gereken bir diğer husus, split’in bize geriye döndürdüğü listede böldüğü kelimeyi yani bizim örneğimizde “is” kelimesini bulundurmayacaktır.

string = "Deepak is a good person and Preeti is not a good person."  
print(string.split('is '))

Çıktı:

['Deepak ', 'a good person and Preeti', 'not a good person.']

Kaynaklar

--

--

Oğuzhan Çelikarslan
Oğuzhan Çelikarslan

Written by Oğuzhan Çelikarslan

Python enthusiast who focuses on the problem, break down it, and solves it. https://oguzhann.net

No responses yet