Çizgi dilimleri
Python'da, bir dizenin ( alt dize) bir bölümünü seçebilirsiniz. Bunu yapmak için dilim alma işlemini kullanın (İngilizce dilimleme'den)
Dilimleme işleminin genel görünümü aşağıdaki gibidir
s[start:stop:step]
Bu komut, start dizinindeki karakterden başlayarak stop dizinindeki karaktere kadar (bu dahil değil) s dizgesinden bir dilim alır. adım adım (belirtilmemişse, adım 1'dir)
Parantez içindeki herhangi bir kısım eksik olabilir.
Örneğin,
s1 = s[3:8]
3'ten 7'ye kadar olan karakterlerin 1. adımda s dizisinden s1 dizisine kopyalandığı anlamına gelir.
Negatif indeksler alabilirsin, o zaman sayma dizgenin sonundandır.
s = "0123456789"
s1 = s[-7:-2] # s1="34567"
start belirtilmezse, sıfıra eşit kabul edilir (yani, dizenin başından alırız). Stop belirtilmezse, dilim dizenin sonuna kadar alınır.
s = "0123456789"
s1 = s[:4] # s1="0123"
s2 = s[-4:] # s2="6789"
Bir diziyi tersine çevirmek bu kadar kolay:
s = "0123456789"
s1 = s[::-1] # s1="9876543210"
Dizenin tüm karakterleri -1'lik artışlarla yinelenir; bu, karakterlerin sondan yineleneceği anlamına gelir. Başlangıç ve bitiş indeksleri belirtilmediği için tüm satır dahil edilmiştir.
|
Sil ve Yapıştır
Bir dizinin bir kısmını silmek için orijinal dizinin silinecek bölümden önceki ve sonraki kısımlarını birleştirerek yeni bir dizi oluşturmanız gerekir.
s = "0123456789"
s1 = s[:3]+s[9:] # s1="0129"
Dilimleri ve dizi birleştirmeyi kullanarak, bir dizenin içine bir alt dize ekleyebilirsiniz.
s = "0123456789"
s1 = s[:3]+"ABC"+s[3:] # s1="012ABC3456789"
|
Dize işleme yöntemleri
Python, dizelerle çalışmak için birçok yönteme (kullanıma hazır işlevler) sahiptir. Birçoğu nokta gösterimi kullanılarak çağrılır ve yöntemler olarak adlandırılır. Dize işleme yöntemlerinin tam listesi çevrimiçi olarak bulunabilir.
Bazıları ile tanışalım.
s = "aAbBcC"
sUp = s.upper() # sUp = "AABBCC" - çeviren bir yöntem
# dizenin her karakterini büyük harfle yazın
sLow = s.lower() # sLow = "aabbcc" - çeviren bir yöntem
# dizenin her karakterini küçük harfle yazın
Noktanın solunda, yöntemin uygulanacağı dizenin adı (veya dizenin kendisi tırnak içinde), noktanın sağında ise yöntemin adı bulunur. Yöntem her zaman parantez içinde yazılır. Gerekirse parantez içinde herhangi bir parametre olabilir.
Önceden, verileri ekranda belirli bir biçimde görüntülerken dizelerle çalışma yöntemini zaten kullanıyorduk - format() yöntemi
bir = 4
b = 5
print("{}+{}={}".format(a,b,a+b)) # 4+5=9
Diğer bir yararlı yöntem isdigit() , bir dizgedeki tüm karakterlerin rakam olup olmadığını kontrol eden bir yöntemdir, bir boole değeri (Doğru veya Yanlış) döndürür.
s = "ab1c"
print(s.isdigit()) #False
sn = "123"
print(s.isdigit()) #Doğru
Yararlı strip() yöntemi, bir dizenin başındaki ve sonundaki boşlukları kaldırmanıza olanak tanır
s = " ab 1c "
print('s=', s.strip()) # s=ab 1c
|
Sırada arama
Python'da bir dize içinde arama yapmak için find() yöntemini kullanın.
Üç biçimi vardır ve dizedeki alt dizenin 1. oluşumunun dizinini döndürür:
1) find(str) - str alt dizesi, dizenin başından sonuna kadar aranır;
2) find(str, start) - start parametresi kullanılarak, başlangıç dizini ayarlanır ve arama buradan yapılır;< br />
3) find(str, start, end) - end parametresi kullanılarak end index ayarlanır, ondan önce arama yapılır.
Alt dize bulunamadığında, yöntem -1 döndürür:
hoşgeldiniz = "Merhaba dünya! Hoşçakal Dünya!"
dizin = hoşgeldin.find("çalışmak")
print(dizin) #6
# 10'dan 15'e kadar dizini arayın
dizin = hoşgeldiniz.find("çalışmak", 10, 15)
yazdır(dizin) # -1
Dizenin sonundan arama yapabilirsiniz. Bunun için rfind() yöntemi (İngilizce reverse find'den) kullanılır - bir dizede bir alt dizenin son geçtiği dizinin dizinini döndürür.
Not: veri yöntemleri tekrar sayısına bakmayın, sadece dizide böyle bir alt dizi olup olmadığını belirleyin.
|
Bir dizedeki alt dizeleri değiştirme
Python'da, bir dizede bir alt dizeyi diğeriyle değiştirmek için replace() yöntemini kullanın:
replace(eski, yeni) - eski alt dizesi yeni ile değiştirilir;
replace(eski, yeni, num) - parametresi num , eski alt dizesinin kaç kez yeni >.
Örnek
telefon = "+1-234-567-89-10quot;
# tireler boşluk olarak değiştirildi
edited_phone = phone.replace("-", " ")
yazdır(edited_phone) # +1 234 567 89 10
# tire kaldırıldı
edited_phone = phone.replace("-", "")
print(edited_phone) # +12345678910
# sadece ilk tire değişir
edited_phone = phone.replace("-", "", 1)
print(edited_phone) # +1234-567-89-10
|