Focus mode

Veri Bilimi

Stringlerde İndexleme

Indexing (Elemanlara Erişme)


isim = "Deniz"
isim[1]


"Deniz"[1]



isim[0]


  • İkinci eleman için de [1]
isim[1]


  • Aynı şeyleri string'i bir değişkene atamadan da yapabilirdik
"Deniz"[0]


"Deniz"[1]


  • Son elemanı elde etmek için [-1] yazabiliriz
isim[-1]


  • Sondan ikinci için [-2]
isim[-2]


  • Deniz 5 karakterden oluşuyor. Indexleri 0,1,2,3,4. Eğer ben 4 ten büyük bir index verirsem o indexte bir elemanı olmadığı için hata alırım
len(isim)


isim[4]


isim[5]
---------------------------------------------------------------------------

IndexError                                Traceback (most recent call last)

<ipython-input-13-f0339b205fca> in <module>
----> 1 isim[5] 
IndexError: string index out of range
isim[10]
---------------------------------------------------------------------------

IndexError                                Traceback (most recent call last)

<ipython-input-15-f25549abd903> in <module>
----> 1 isim[10]
IndexError: string index out of range
  • Stringlerin elemanlarının değiştirilemez olduğundan bahsetmiştik (immutable). O yüzden şöyle şeyler yapamayız: (elemanlarını değiştirebildiğimiz non-scalar veri tiplerini de göreceğiz)
isim


isim[0] = "b"
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-17-59044b134158> in <module>
----> 1 isim[0] = "b"


TypeError: 'str' object does not support item assignment

Slicing (Dilimleme)


isim


# Burada önemli olan nokta ilk belirtilen indexing dahil edilip son olarak yazılanın dahil edilmemesi
# 0,1,2 indexlerindekileri döndürdü sonuç olarak

isim[0:3]


  • başlangıç:bitiş olarak veriyoruz ve bitiş olarak verdiğimiz index dahil olmuyor. Başlangıcı belirtmezsek Python default olarak başlangıç değerini 0 alıyor.
isim[:3]


  • Bitişi belirtmezseniz Python String'in sonuna kadar alıyor, bu sefer son elemanını da dahil ediyor.
isim[1:]


isim[0:]


isim[:]


  • Slicing yaparken bitiş olarak verdiğimiz değer en büyük indeximizden büyükse hata almayız, sadece sonuna kadar almış olur (sadece indexing yaparken en büyük indexten büyük değer verince hata alıyorduk.)
len(isim)


isim[1:20]


isim[1:200]


isim[1:]


  • başlangıç:bitiş olarak slicing yapabileceğimiz gibi, başlangıç:bitiş:adım formunda da slicing yapabiliriz. Burada adım parametresi kaçar kaçar gideceğimizi belirler.
isim


isim[0:10:2]


isim[0:10:3]


  • Adım eksi bir değer de olabilir. Böylece ters yönce gitmiş oluruz. Ama başlangıç değerinin bitiş değerinden büyük olması lazım bunu yapabilmem için.
# 0. indexten 10. indexe 2 azalarak gidemez, o yüzden boş string döndürür
isim[0:10:-1]


isim[10:0:-1]


isim[::-1]


isim[::-2]


Test

Comments

You need to enroll in the course to be able to comment!