Python String Metotları
Çok uzun zamandır Google Search Console verilerinde sıklıkla karşıma çıkan kelimelerden biri Python find kullanımı sorgusu. Bu konuya dair en yakın içeriğim komut satırı aracılığı ile kullanabileceğimiz find
komutu idi. Konuya dair detaylar için find Komutu ve Kullanımı başlıklı yazıma göz atabilirsiniz.
Daha Python ile ilgilenmeye başlamadan önce bu aramalarda sorgularda sitenin listeleniyor olması ancak gelen kullanıcıların esasında alakasız bir içerikle karşılaşıyor olması pek hoş değil. Neticede, daha önce de bahsettiğim üzere bir süredir Python programlama dili ile ilgileniyorum. Bu vesile ile de, artık ilgili aramaya cevaben string metotlarına değinebilmem mümkün.
Python ve String Metotları
String fonksiyonları ile ilgili örnek kod paylaşımları içerisinde çeşitli kullanımlar mevcut1 2. Bu sebeple, Python ile ilgili daha önce yayınladığım ve ilerleyen zaman içerisinde yayınlayacağım yazılara da ayrıca göz atmanızı tavsiye ederim. Bu yazıları Python kategorisi altında görebilirsiniz.
Ek olarak, codewars web sitesine üye olmanızı ve size sunulan kata‘lar aracılığı ile pratik yapmanızı da öneririm3.
O halde, find
metotu ile başlayalım.
Find ve Rfind
find
metotu verilen ifade içerisinde arama işlemi gerçekleştirir. Eğer belirtilen ifade ile ilgili bir eşleşme olursa eşleşmenin başlangıç indeksini döndürür. Bir eşleşme olmazsa -1
döner. Büyük-küçük harf duyarlıdır (case-sensetive).
Aşağıdaki gibi bir metin parçacığımız olsun4;
txt = '''Yaşamak görevdir bu yangın yerinde
Yaşamak, insan kalarak'''
print(txt.find('Yaşamak')) # 0
print(txt.find('Sivas')) # -1
print(txt.find('yangın')) # 20
print(txt.find('Yangın')) # -1
firstLine = txt[:txt.find('\n')]
print(firstLine)
getPart = txt[txt.find('bu'):txt.find('\n')]
print(getPart)
Metot sub
dışında opsiyonel olarak start
ve end
olmak üzere 3 parametre alabilir; str[start:end]
şeklinde düşünülebilir. Aynı metin üzerinden başlangıç ve bitiş sınırları belirterek tekrar ilgili metotu kullanalım.
print(txt.find('Yaşamak', 1)) # 35
# Çünkü, 'aşamak' ile eşleşmeyecektir.
# bkz. txt[1:]
print(txt.find('Yaşamak', 8)) # 35
# bkz. txt[8:]
print(txt.find('Yaşamak', 36, 50)) # -1
# bkz. txt[36:50]
print(txt.find('insan', 36, 50)) # 44
# bkz. txt[36:50]
Görüldüğü üzere bir başlangıç ve/veya bitiş sınırı belirtilmediğinde ilk eşleşme değeri dönmekte. Ancak, bir başlangıç belirtildiğinde, bu değer öncesindeki olası eşleşmeler gözardı edilmekte. Aynı şekilde, bir bitiş değeri belirtilmiş ise, bu değer sonrasındaki olası eşleşmeler de gözardı edilirler.
find
ve rfind
metotlarını karar yapılarında da kullanabilmekteyiz.
if txt.find('Suçlular') == -1:
print('Bulunamadı!')
else:
print('Bulundu!')
rfind
için de find
üzerine belirtilen tüm durumlar geçerli. Ancak, rfind
metotunda ise verilen değerin sonundan başına doğru arama işlemi gerçekleştirilir.
txt = '''Yaşamak görevdir bu yangın yerinde
Yaşamak, insan kalarak'''
print(txt.rfind('Yaşamak')) # 35
print(txt.rfind('Sivas')) # -1
print(txt.rfind('yangın')) # 20
print(txt.rfind('Yangın')) # -1
Index ve Rindex
Belitilen string, list veya tuple değer(ler)ini bir string içerisinde arar ve bulunması durumunda ilk eşleşmenin başlangıç indeks değerini döndürür. Bu açıdan find
ile benzeşebilir. Ancak, index
bir eşleşme olmaması durumunda hata (exception) döndürür. Ek olarak, index
şart (condition) yapılarında kullanılamaz.
print(txt.index('Yaşamak'))
print(txt.index('Yaşamak', 1))
print(txt.find('Yaşamak', 1))
print(txt.index('yangın'))
print(txt.find('yangın'))
lst = ['yaşamak','yangın','yerinde']
print(lst.index('yangın'))
tpl = (('yaşamak','yangın'),('yerinde'))
print(tpl.index('yerinde'))
rindex
metotu verilen string ifade içerisinde sondan başa doğru arar ve bulunması durumunda ilk eşleşmenin indeks değerini döndürür. index
metotunda olduğu gibi aramanın yapılacağı alana dair bir başlangıç ve son sınırı verilebilir.
print('yaşamak'.rindex('a'))
print('yaşamak'.rindex('a', 1, 5))
Center
Verilen string içeriğini belirtilen genişliğe uyarlar. Genişlik için bir tanım (fillchar) verilmesi durumunda ilgili ifade, bir ifade belirtilmemişse ön tanımlı olarak boşluk genişliğe uyacak kadar tekrarlanır. Eğer verilen genişlik değeri string uzunluğundan küçük ise işlem gerçekleştirilmez ve string ifadesi olduğu gibi döndürülür.
Eğer belirtilen uzunluk değeri string uzunluğundan bir fazla ise, ekleme sağa yapılır.
print(getPart.center(50))
print(getPart.center(50, '='))
print(getPart.center(10, '='))
print(getPart.center(18, '='))
Ljust ve Rjust
ljust
metotu, string bir ifade solda olacak şekilde, belirtilen uzunluk değeri kadar, verilen değer ile doldudur. rjust
metotunda ise verilen string ifade sağda yer alır.
Daha önce bahsi geçen center
metotu da benzer bir şekilde, verilen string değer ortada olacak şekilde işlem gerçekleştirmekeydi.
print('Yaşamak, insan kalarak'.ljust(50, '='))
print('Yaşamak, insan kalarak'.rjust(50, '='))
Count
Belirtilen ifadenin verilen string içerisinde kaç defa geçtiğini değer olarak döndürür. Büyük-küçük harfe duyarlıdır (case-sensetive). Bir eşleşme olmaz ise 0
değeri dönecektir. Opsiyonel olarak taramanın yapılacağı başlangıç ve bitiş değerleri de belitilebilir. Bu durumda, belirtilen sınırlar içerisindeki ifade için işlem gerçekleştirilecektir.
print(txt.count('Yaşamak')) # 2
print(txt.count('Yaşamak', txt.find('\n'))) # 1
print(txt.count('Yaşamak', 0, txt.find('\n'))) # 1
print(txt.count('yaşamak')) # 0
print(txt.count('ak', 0, 200)) # 3
print(txt.count('ak', txt.find('\n'), 200)) # 2
Capitalize
Verilen değerin ilk harfi büyük olacak şekilde karakterleri düzenler. Eğer string içerisinde başka büyük harfler varsa, sadece ilk harf büyük kalacak şekilde diğerleri küçük harf (lower-case) olarak güncellenir.
print(getPart.capitalize())
print('Bu Yangın Yerinde'.capitalize())
Title
Verilen değerdeki tüm kelimelerin ilk harflerini büyük hale getirir. Eğer string içerisinde başka büyük harf karakterler var ise bu karakterler küçük harf olarak düzenlenir.
print(getPart.title())
print('Bu Yangın Yerinde'.title())
Casefold
lower
metotuna benzer olsa da kapsamı daha geniştir.
print(firstLine.casefold())
print(firstLine.lower())
csfld = 'außen'
print(csfld.casefold())
print(csfld.lower())
Lower
Verilen string değer içerisindeki tüm karakterleri küçük harfe (lower-case) dönüştürür. Semboller ve sayılar metot tarafından gözardı edilir.
print('Yaşamak, insan kalarak'.lower())
print('SİVAS KATLİAMI'.lower())
print('STÅLE'.lower())
Upper
Verilen string değer içerisindeki tüm karakterleri büyük harfe (upper-case) dönüştürür. Semboller ve sayılar metot tarafından gözardı edilir.
print('Yaşamak, insan kalarak'.upper())
print('SİVAS KATLİAMI'.upper())
print('Ståle'.upper())
print('außen'.upper())
Encode
Verilen string ifade encode edilir. Ön tanımlı olarak utf-8 değerine göre işlem gerçekleştirilir.
print(txt.encode())
print(txt.encode(encoding="ascii",errors="backslashreplace"))
print(txt.encode(encoding="ascii",errors="ignore"))
print(txt.encode(encoding="ascii",errors="namereplace"))
print(txt.encode(encoding="ascii",errors="replace"))
print(txt.encode(encoding="ascii",errors="xmlcharrefreplace"))
ncode = 'außen'
print(csfld.encode())
ncode = 'Ståle'
print(ncode.encode(encoding="ascii",errors="backslashreplace"))
print(ncode.encode(encoding="ascii",errors="ignore"))
print(ncode.encode(encoding="ascii",errors="namereplace"))
print(ncode.encode(encoding="ascii",errors="replace"))
print(ncode.encode(encoding="ascii",errors="xmlcharrefreplace"))
Startswith
String ya da tuple olarak verilen ifadeleri belirilen string ifadesinde ve eğer bir sınır belirtilmiş ise bu sınır değerler arasında arar. Bir eşleşme olması durumunda True
, eşleşme olmaması durumunda ise False
değeri döner. Büyük-küçük harf duyarlıdır.
print(txt.startswith('\n')) # False
print(firstLine.startswith('Yaşamak')) # True
print(firstLine.startswith('Y')) # True
print(getPart.startswith('b'), 0, 1) # True - Case-sensetive - bkz. getPart[0:1]
print(getPart.startswith('B'), 0, 1) # False - Case-sensetive - bkz. getPart[0:1]
print(firstLine.startswith(('insan','yerinde'))) # False - tuple içeriği ile bir eşleşme var mı?
print(firstLine.startswith(('yangın','kalarak'))) # False - tuple içeriği ile bir eşleşme var mı?
Endswith
String ya da tuple olarak verilen ifadeleri belirilen string ifadesi içerisinin sonunda ve eğer bir sınır belirtilmiş ise bu sınırlar içerisinde arar. Bir eşleşme olması durumunda True
, eşleşme olmaması durumunda ise False
değeri döner. Büyük-küçük harf duyarlıdır.
print(txt.endswith('\n')) # False
print(firstLine.endswith('yerinde')) # True
print(firstLine.endswith('e')) # True
print(getPart.endswith('e'), 0, 1) # True - Case-sensetive - bkz. getPart[0:1]
print(getPart.endswith('E'), 0, 1) # False - Case-sensetive - bkz. getPart[0:1]
print(firstLine.endswith(('insan','yerinde'))) # True - tuple içeriği ile bir eşleşme var mı?
print(firstLine.endswith(('yangın','kalarak'))) # False - tuple içeriği ile bir eşleşme var mı?
Replace
3 parametre alır. 1. ve 2. parametreler zorunludur. 1. parametre bulunacak değeri, 2. parametre ise bulunan değerin değişirileceği değeri ifade eder. Opsiyonel olarak 3. parametre ilgili değişikliğin kaç defa gerçekleştirileceği ile ilgili sınırlandıra görevi görür. Eğer bir değer verilmezse tüm eşleşmeler değiştirilir.
Değişiklik olsun olmasın metot yeni bir string olarak değer döndürür.
print(txt.replace('a', 'A'))
tabbedStr = getPart.replace(' ', '\t')
print(tabbedStr) # 'bu yangın yerinde'
multiTabbedStr = getPart.replace(' ', '\t\t\t\t\t')
print(multiTabbedStr) # 'bu yangın yerinde'
print(getPart.replace('e','i'))
print(getPart.replace('e','i',1))
print(getPart.replace('e','i',2))
Expandtabs
Tab (\t
) ifadelerini boşluk olarak düzenler. Eğer bir sayı belirtilmiş ise tab boyutu belirtilen değer kadar boşluk (whitespace) haline getirilir. Ön tanımlı olarak tab boyutu 8 olarak belirtilmiştir.
print(tabbedStr.expandtabs(0)) # 'buyangınyerinde'
print(tabbedStr.expandtabs(1)) # 'bu yangın yerinde'
print(tabbedStr.expandtabs(10)) # 'bu yangın yerinde'
print(multiTabbedStr.expandtabs(0)) # 'buyangınyerinde'
print(multiTabbedStr.expandtabs(1)) # 'bu yangın yerinde'
print(multiTabbedStr.expandtabs(10)) # 'bu yangın yerinde'
print('bu\t'.expandtabs(), 'yangın yerinde') # 'bu yangın yerinde'
print('bu\t'.expandtabs(4), 'yangın yerinde') # 'bu yangın yerinde'
print('bu yangın\t'.expandtabs(), 'yerinde') # 'bu yangın yerinde'
print('bu yangın\t'.expandtabs(4), 'yerinde') # 'bu yangın yerinde'
print('\tyangın\t'.expandtabs(), 'yerinde') # ' yangın yerinde'
print('\tyangın\t'.expandtabs(4), 'yerinde') # ' yangın yerinde'
Format
Bir karakter dizisini biçimlendirebilmek istediğimizde, ilgili alan(lar) için yer tutucu olarak %
kullanılabilmekte.
print('Yaşamak %s bu %s yerinde' % ('görevdir', 'yangın'))
print('Yaşamak %s bu yangın yerinde' % ('görevdir').center(20, '*'))
vl = 'görevdir'
print('Yaşamak %s bu yangın yerinde' % (vl))
# s: karakter dizilerini
# d: sayıları
# i: tam sayıları
# o: sekizli (octal) düzendeki sayılaır
# x ve X: onaltılı (hexadecimal) düzendeki sayıları
# f: ondalıklı sayı (float) ifadelerini
# c: tek bir karakter değerini ifade eder
Ancak, tek seçenek bu değil. format
metotu sayesinde daha esnek bir kullanım gerçekleştirilebilmekte. format
içerisideki değerler tıpkı %
kullanımında olduğu gibi sıralı olarak yer tutuculara ({}
) atanır. Ancak, bu sıralama sıfırdan başlayarak sayısal değerler ({0}
, {1}
, vb.) ile düzenlenebilir.
print('Yaşamak {} bu {} yerinde'.format('görevdir', 'yangın'))
print('Yaşamak {1} bu {0} yerinde'.format('yangın', 'görevdir'))
print('Yaşamak {0[0]} bu {0[1]} yerinde'.format(['yangın', 'görevdir']))
print('Yaşamak {} bu yangın yerinde'.format('görevdir'.center(20, '*')))
print('19{} - Sivas Katliamı'.format(9*10+3))
vl = 'görevdir'
print('Yaşamak {} bu yangın yerinde'.format(vl))
print('Yaşamak {vl2} bu yangın yerinde'.format(vl2='görevdir'))
Is... Değer Kontrol Metotları
Aşağıdaki metotlar verilen string ifadenin metot olarak belirtilen şartı sağlayıp sağlamadığını kontrol eder. İlgili şartın sağlanması durumunda True
, aksi durumda False
ifadesi döner.
Isalnum
Verilen ifadenin alfanümerik ([a-zA-Z0-9]
) olup olmadığını kontrol eder. İlgili şart karşılanıyor ise True
, aksi durumda ise False
değeri döner.
print(txt.isalnum())
print('1993'.isalnum())
print('Sivas'.isalnum())
print('außen'.isalnum())
print('٢'.isdecimal())
Isalpha
Verilen ifadenin alfabetik ([a-zA-Z]) olup olmadığını kontrol eder. İlgili şart sağlanmasına bağlı olarak True
ya da False
değeri döner.
print(txt.isalpha())
print('1993'.isalpha())
print('Sivas'.isalpha())
print('außen'.isalpha())
print('۶'.isalpha())
Isascii
Verilen ifadenin ascii karakterlerden oluşup oluşmadığını kontrol eder.
print(txt.isascii())
print('1993'.isascii())
print('-1'.isascii())
print('10.0'.isascii())
print('/u00e2'.isascii())
print('ß'.isascii())
print('۶'.isascii())
Isdecimal
Unicode decimal karakterlerde True
değeri döndürür.
print(txt.isdecimal())
print('1993'.isdecimal())
print('-1'.isdecimal())
print('10.0'.isdecimal())
print('10,0'.isdecimal())
print('٢'.isdecimal())
Isdigit
Verilen ifade içerisindeki tüm karakterler rakamsa veya bir rakamın Unicode karakter karşılığı ise True
değeri döner.
print(txt.isdigit())
print('1993'.isdigit())
print('-1'.isdigit())
print('10.0'.isdigit())
print('10,0'.isdigit())
print('٢'.isdecimal())
Isnumeric
Verilen ifade içerisindeki tüm karakterler nümerik ise True
değeri döner.
print(txt.isnumeric())
print('1993'.isnumeric())
print('-1'.isnumeric())
print('10.0'.isnumeric())
print('10,0'.isnumeric())
print('۶'.isnumeric())
Isnumeric - Isdecimal ve Isdigit Arasındaki Farklılık
String Değer | isdecimal() | isdigit() | isnumeric() |
---|---|---|---|
'123' | True | True | True |
'$123' | False | False | False |
'123.50' | False | False | False |
'123a' | False | False | False |
'¾' | False | False | True |
'\u0034' | True | True | True |
Isidentifier
Vrilen değerin doğru bir tanımlayıcı (identifier) olup olmadığını kontrol eder. Tanımlayıcılar rakamlarla başlayamazlar, ancak bir alfabe veya alt çizgi ile başlayabilirler. Geçerli bir tanımlayıcı dizesi yalnızca küçük veya büyük harfler, alt çizgi, 0'dan 9'a kadar rakamlar içerebilir.
print(txt.isidentifier())
print('1993'.isidentifier())
print('_Sivas'.isidentifier())
print('Sivas_Katliamı'.isidentifier())
print('Sivas Katliamı'.isidentifier())
print('1993_Sivas_Katliamı'.isidentifier())
print('Sivas_Katliamı_1993'.isidentifier())
print('_۶'.isidentifier())
print('۶_'.isidentifier())
Islower
Verilen ifadedeki tüm karakterlerin küçük harf olup olmadığını kontrol eder. Şart sağlanıyorsa True
değeri döner.
print(txt.islower())
print('sivas katliamı'.islower())
print('1993 sivas katliamı'.islower())
print('Sivas katliamı'.islower())
Isprintable
Verilen değer içerisindeki tüm karakterler yazdırılabilir (printable) ise True
, değil ise False
değeri döner. \n
, \l
, \r
, \t
, \x16
ve \xlf
gibi karakterler yazdırılamaz (non-printable) karakterler olarak ifade edilirler. Ek olarak '''...'''
kullanımında da False
değeri dönecektir.
print(txt.isprintable())
print(firstLine.isprintable())
print(getPart.isprintable())
print('\r'.isprintable())
print('\u2029'.isprintable())
Isspace
Verilen değer bir ya da birkaç boşluktan (whitespace) oluşuyor ise True
, diğer durumlarda ise False
döner.
print(txt.isspace())
print(firstLine.isspace())
print(getPart.isspace())
print(' '.isspace())
print(' '.isspace())
print('\t\t'.isspace())
print('\n\r'.isspace())
print('''
'''.isspace())
Istitle
Verilen string ifade ya da ifadelerin ilk karakter(ler)inin büyük ve diğer karakterlerinin küçük olmasına bağlı olarak True
ya da False
değeri döner.
print(txt.istitle())
print(firstLine.istitle())
print(getPart.istitle())
print('Sivas Katliamı'.istitle())
print('1993 - Sivas Katliamı'.istitle())
print('SİVAS KATLİAMI'.istitle())
Isupper
Verilen değer içerisindeki tüm karakterlerin büyük (upper-case) olması durumunda True
, aksi durumda False
değeri döner. Semboller ve sayılar metotun çalışma biçimini etkilemez.
print(txt.isupper())
print(firstLine.isupper())
print(getPart.isupper())
print('Sivas Katliamı'.isupper())
print('1993 - Sivas Katliamı'.isupper())
print('SİVAS KATLİAMI'.isupper())
print('1993 - SİVAS KATLİAMI'.isupper())
Join
Verilen değer(ler)i iteratif bir şekilde ve belirtilen ara değer ile birlikte yeni bir string olarak döndürür. Tuple, list veya dictionary olarak verilen değerlerin string'lerden oluşması gerekir. Aksi durumda, TypeError
hatası döner.
txt = ['Yaşamak', 'görevdir', 'bu', 'yangın', 'yerinde']
print(' '.join(txt))
print('\t'.join(txt))
print('*'.join('1993'))
tpl = ('Sivas')
print('.'.join(tpl))
print('.'.join(tpl.upper()))
# tpl = (1993)
# print('.'.join(tpl))
dctr = {'Sivas', 'Katliamı', '1993'}
print(','.join(dctr))
Strip, Lstrip ve Rstrip
strip
metotu, verilen değerin her iki yanında ön tanımlı olarak boşluk veya belirtilmişse diğer karakerlerin silinmesini sağlar.
print('----------Yaşamak'.strip())
print('----------Yaşamak'.strip('-'))
print(' Yaşamak'.strip())
print(' Yaşamak '.strip())
print(' Yaşamak'.strip('-'))
print('----------Yaşamak----------'.strip('-'))
print('----------Yaşamak------1993----'.strip('-'))
lstrip
, verilen değerin başlangıcından (sol) itibaren silme işlemi gerçekleştirir. Bir ifade belirtilmemişse boşluk(lar) (whitespace), ifade belirtilmiş ise ilgili ifade silinir. rstrip
ise ilgili işlemi verilen değerin sağından itibaren gerçekleştirir.
print('----------Yaşamak'.lstrip())
print('----------Yaşamak'.lstrip('-'))
print(' Yaşamak'.lstrip())
print(' Yaşamak'.lstrip('-'))
print('----------Yaşamak----------'.lstrip('-'))
print('----------Yaşamak------1993----'.lstrip('-'))
print('Yaşamak----------'.rstrip())
print('Yaşamak----------'.rstrip('-'))
print(' Yaşamak '.rstrip())
print('Yaşamak '.strip('-'))
print('----------Yaşamak----------'.rstrip('-'))
print('----------Yaşamak------1993----'.rstrip('-'))
Maketrans ve Translate
Maketrans
ve translate
metotları genelde birlikte kullanılan metotlar. Maketrans
3 parametre alır. Tek bir argüman olacaksa bunun dictionary olması gerekir. Eğer 2 argüman kullanılacaksa ikisinin de benzer uzunlukta string'ler olması gerekir. 3. argüman ise orjinal değer içerisinden hangi karakterin silineceğini belirtir, bir değer verilmez ise ön tanımlı olarak None
değerini alacaktır.
print('yangın'.maketrans('y','s','ı'))
Dönen dictionary içeriğindeki key eski, value ise map'lenen yeni chr değerini temsil eder.
print(chr(121), chr(115), sep = 'to'.center(4))
translate
ise table olarak değer alır. Verilen key ve value değerlerini eşleştirir ve yeni bir string olarak döndürür.
str1 = 'yangın'
strTr = str1.maketrans('yn','sl','ı')
print(strTr)
print(str1.translate(strTr))
Partition ve Rpartition
Verilen değer içerisinde parametre olarak belirilen ifadeyi arar ve bu ifadeyi ilk eşleşme için ayraç olarak kullanır. Elde edilen değeler 3 parçadan oluşan bir tuple olarak döndürülür. Bu parçalar seperatör tanımı öncesi, seperatör tanımı ve tanım sonrası alanlardan oluşur. Parametre tanımı zorunludur ve boş değer (''
gibi) verilemez.
print(getPart.partition('yangın'))
print(firstLine.partition(' '))
print(firstLine.partition('bu'))
rpartion
ise partion
metotundan farklı olarak, parçalara ayırma işlemini sondan başa doğru gerçekleştirir.
print(getPart.rpartition('yangın'))
print(firstLine.rpartition(' '))
print(firstLine.rpartition('bu'))
Split ve Rsplit
split
metotu 2 parametre alır. Verilen değer içerisinde arama yapar ve 1. parametre eşleşmelerini parçalayarak liste halinde döndürür. 1. paametre ön tanımlı olarak boşluk (whitespace) değerini alır. Parametre değeri olarak boşluğun yanı sıra \t
, \n
, gibi karakterler de kullanılabilir. 2. parametre (maxsplit) ise parçalama işlemi için yapılacak aramanın sınırlandırılmasını sağlar.
print(firstLine.split())
print(getPart.split('yangın'))
print(getPart.split(' yangın '))
print(firstLine.split(' ', 2))
rsplit
metotu split
metotuna benzer şekilde davranır. Temel farklılık, 2. parametre içerisinde bir sınır belirtilmesi durumunda bu sınırlandırma işleminin sondan başa doğru gerçekleştirilmesidir.
print(firstLine.rsplit())
print(getPart.rsplit('yangın'))
print(getPart.rsplit(' yangın '))
print(firstLine.rsplit(' ', 2))
Splitlines
Verilen değeri satırlara böler. Bu işlem içi \n
, \r
, \t
, \n\r
, \v
, \f
gibi satır sınırlandırıcılarını temel alır. Opsiyonel olarak tek bir parametre (keepends) alır. Ön tanımlı olarak bu parametre False
değerine sahiptir. True
değerinin verilmesi durumunda satır sonlarındaki sınırlandırıcılar da liste değeri içerisinde yer alır.
print('''Yaşamak görevdir bu yangın yerinde
Yaşamak, insan kalarak'''.splitlines())
print('''Yaşamak görevdir bu yangın yerinde
Yaşamak, insan kalarak'''.splitlines(True))
print('Yaşamak\rinsan\rkalarak'.splitlines())
print('Yaşamak\rinsan\rkalarak'.splitlines(True))
Swapcase
Verilen ifade içerisindeki harflerin durum değişikliklerini gerçekleştirir. Örneğin, küçük harf (lowe-case) karakerler büyük harfe (upper-case) ve büyük harfli karakterler de küçük harfe dönüştürülür ve yeni bir string ifadesi haline getirilir.
print(getPart.swapcase())
print(firstLine.swapcase())
print('2 Temmuz 1993 - Sivas Katliamı'.swapcase())
print('STÅLE'.swapcase())
print('außen'.swapcase())
Zfill
Verilen değerin başına parametre olarak verilen toplam genişlik değerine uygun olarak 0 (sıfır) ekler. Genişlik (width) parametresi zorunludur. Verilen değerin string uzunluğundan küçük ya da eşit olması durumunda string değerin kendisi döner. rjust
ile benzeştiği düşünülse de negatif sayılarda iki metotun çıktıları farklılık gösterir.
print('10.0'.zfill(10))
print('10.0'.rjust(10,'0'))
print('$100'.zfill(5))
print('$100'.rjust(5, '0'))
print('-100'.zfill(5))
print('-100'.rjust(5, '0'))
Bu sayfada yer alan metotlara dair örnekleri Colab aracılığı ile görüntüleyebilirsiniz. Farklı konular bağlamında sıklıkla buradaki metotları kullanmak gerektiği için burada yer almayan ancak çözüm olarak ele alınmış farklı kullanım ve özellikler olması durumunda eklemeler yapmaya çalışacağım.