Kodlamanızı Kolaylaştıran 9 Python String Manipülasyon Püf Noktası
Dizeler, her Python geliştiricisinin işleyebileceği ilkel ve temel veri yapılarıdır.
Python'un zeninde söylendiği gibi, "basit, karmaşıktan iyidir", kodumuzu her zaman daha Pythonic bir dize işleme hilesi ile geliştirebiliriz.
Konuşma ucuz. İşte başlangıç seviyesindekilere uygun kod örnekleriyle birlikte bilinmesi gereken 9 Python dizi işlem hilesi.
1. Dize Dolgusu: Ekstra Karakterleri Zarif Bir Şekilde Ekleyin
Bazı durumlarda, bir dizeye fazladan karakterler eklememiz ve onu belirli bir uzunlukta yapmamız gerekir; bu, metin verileriyle çalışırken veya çıktıyı biçimlendirirken yardımcı olabilir.
Bu işleme “string padding” denir.
Python'da bu tür işlemleri yapmamıza yardımcı olabilecek 3 basit yöntem vardır: ljust(), rjust()ve center().
ljust()ve yöntemleri rjust(), sırasıyla sola veya sağa yaslanmış bir uzunluk genişliği dizisi döndürür:
author = "Yang Zhou"
left_justified = author.ljust(10, "*")
print(left_justified)
# Yang Zhou*
right_justified = author.rjust(20, "*")
print(right_justified)
# ***********Yang Zhou
Diğer bir dize dolgu türü, merkez dolgudur. Adından da anlaşılacağı gibi, bir dizenin hem sol hem de sağ tarafına karakterler ekler ve onu belirli bir uzunlukta yapar.
Örneğin, aşağıdaki kod, orijinal dizenin her iki tarafına da yıldız işaretleri ekler:
author = "Yang Zhou"
centered_author = author.center(21, "*")
print(centered_author)
# ******Yang Zhou******
Uzun bir diziyi bir alt diziler listesine ayırmak istiyorsak yerleşik split()yöntem iyi bir seçimdir.
Varsayılan olarak, dizeleri boşluklara göre ayırır. Ancak bir karakter veya dizi de atayabiliriz.
Örneğin, aşağıdaki program karakter dizisini textkaraktere göre ayırır ,:
text = "Hello,Yang,how are you?"
print(text.split(','))
# ['Hello', 'Yang', 'how are you?']
text = "Hello\nYang!\nHow are you?"
print(text.splitlines())
# ['Hello', 'Yang!', 'How are you?']
text = "Hello\nYang!\nHow are you?"
print(text.split('\n'))
# ['Hello', 'Yang!', 'How are you?']
f-dizesi, yalnızca dize biçimlendirme sürecini basitleştirdiği için değil, aynı zamanda dize sabit değerlerinin içine ifadeler gömmek için bir yol sağladığı için güçlüdür.
from datetime import date
author='Yang'
story = f'{author} is writing at {date.today()}'
print(story)
# Yang is writing at 2023-02-13
Bunu f-string tekniği olmadan zarif bir şekilde yapabilir misiniz?
4. Bir Diziyi Tersine Çevirmenin En Kolay Yolu
Python'da bir dizginin içinden geçmek ve ardından tersine çevirmek için kesinlikle bir for döngüsü kullanabiliriz.
Ama hiç Pythonic değil. Dilimleme hilesini kullanmak, bir Python dizesini tersine çevirmenin en kolay yoludur:
author = "Yang Zhou"
print(author[::-1])
# uohZ gnaY
Veri temizleme, veri bilimcileri için sıkıcı bir iştir. Ancak, Python dizelerinin gereksiz karakterlerini kolayca nasıl kaldıracağınızı biliyorsanız, Python bunu kolaylaştırır.
Baştaki veya sondaki gereksiz karakterler için strip()yöntem dostumuzdur:
author = "__Yang Zhou___"
print(author.strip('_'))
# Yang Zhou
print(author.lstrip("_"))
# Yang Zhou___
print(author.rstrip('_'))
# __Yang Zhou
Bunları boş karakterlerle değiştirmeniz yeterlidir:
author = "__Yang_ _Zhou___"
print(author.replace('_',''))
# Yang Zhou
Büyük/küçük harf duyarlı mı değil mi?
Bu, özellikle kullanıcı girdili diziler için, dizeleri işlerken her zaman dikkat etmemiz gereken sorudur. Aksi takdirde, sonunda bazı beklenmedik hatalarla karşılaşılacaktır.
Neyse ki, Python dizeleri, büyük/küçük harf değiştirme sorunlarını çözmek için birçok yerleşik yönteme sahiptir.
Birkaçını denemek için:
author = "yang Zhou"
print(author.lower())
# yang zhou
print(author.upper())
# YANG ZHOU
print(author.swapcase())
# YANG zHOU
print(author.title())
# Yang Zhou
print(author.capitalize())
# Yang zhou
- İşlev,
capitalize()ilk karakteri büyük, geri kalanını küçük harf yapmaktır. - İşlev,
title()dizenin her kelimenin baş harfli olduğu bir sürümünü döndürür. Ancak, her zaman bir kelimenin ilk karakterini büyük harf yapacağından, bize uygun bir başlık sağlayacak kadar akıllı değildir:
author = "yang Zhou and his wife are cooking"
print(author.title())
# Yang Zhou And His Wife Are Cooking
Python'da birden çok diziyi birleştirmek için iki yaklaşım vardır.
Biri doğrudan kullanıyor +:
first_name = "Yang"
last_name = 'Zhou'
author = first_name + ' ' + last_name
print(author)
# Yang Zhou
chars = ['Y', 'a', 'n', 'g']
print("".join(chars))
# Yang
print("-".join(chars))
# Y-a-n-g
print("!yes!".join(chars))
# Y!yes!a!yes!n!yes!g
8. Alt Dizileri Ustalıkla Arayın
Metinlerden bir alt dize aramak, günlük programlamada yaygın bir gerekliliktir. Temel olarak, Python bu amaç için iki basit yöntem sunar.
Biri yöntemi kullanıyor find.
title = 'How to search substrings of Python strings'
print(title.find('string'))
# 17
print(title.rfind('string'))
# 35
print(title.find('Yang'))
# -1
title = 'How to search substrings of Python strings'
print(title.index('string'))
# 17
print(title.rindex('string'))
# 35
print(title.index('Yang'))
# ValueError: substring not found
Ancak alt dizileri özel kalıplar aracılığıyla aramak istiyorsak, düzenli ifadeler bizim dostumuzdur.
9. Karmaşık Dize İşleme için Normal İfadelerden Yararlanın
Dize işleme söz konusu olduğunda, daha kolay yerleşik bir işlev bulamazsanız, normal ifadeler nihai silahtır.
Örneğin uzun bir metinden tüm telefon numaralarını ayırmamız gerekirse kodu şu şekilde yazabiliriz:
import re
text = "Yang's phone number is 123-456-7890"
phone_number = re.search(r"\d{3}-\d{3}-\d{4}", text)
print(phone_number.group())
Okuduğunuz için teşekkürler. ❤️
Milyonlarca harika makaleye erişmek için tavsiye bağlantım aracılığıyla Medium'a katılın:
Referans:
Python'da Normal İfadelerSeviye Atlama Kodlama
Topluluğumuzun bir parçası olduğunuz için teşekkürler! Gitmeden önce:
- Hikaye için alkışlayın ve yazarı takip edin
- Seviye Atlama Kodlama yayınında daha fazla içerik görüntüleyin
- Bizi takip edin: Twitter | LinkedIn | Bülten

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































