Dilim notasyonu aslında oldukça basit:
a[baslangic:son] # baslangic'tan baslar son-1'e kadar
a[baslangic:] # baslangic'tan baslar geri kalanı döndürür
a[:son] # en baştan son'a kadar
a[:] # tüm nesneyi kopyalar
Yukarıdakilerden herhangi biriyle kullanılabilecek diğer bir değer de adim
:
a[baslangic:son:adim] # baslangic'tan baslar, son'a gider, adim sayısınca
Hatırlanması gereken önemli bir nokta son
değerinin dilimde olmayan ilk değeri temsil etmesi.
Diğer bir özellik, baslangic
ve son
değerlerinde negatif bir sayı kullanabiliyor olmamız. Bu da dizinin başından değil sonundan itibaren sayıldığı anlamına gelir:
a[-1] # dizedeki son öğe
a[-2:] # dizedeki son iki öğe
a[:-2] # son iki öğe hariç diğer öğeler
Benzer şekilde adim
‘da negatif bir sayı olabilir
a[::-1] # dizedeki tüm öğeler, ters çevrilmiş
a[1::-1] # ilk iki öğe, ters çevrilmiş
a[:-3:-1] # son iki öğe, ters çevrilmiş
a[-3::-1] # son iki öğe hariç diğer öğeler, ters çevrilmiş
Python, istediğinizden daha az öğe varsa programcıya karşı naziktir. Örneğin, a[:-2
]’yi çağırırsınız ve a
yalnızca bir öğe içeriyorsa, hata yerine boş bir liste alırsınız. Bazen hatayı tercih edersiniz, bu yüzden bunun olabileceğinin farkında olmalısınız.
slice()
nesnesiyle dilimlemenin ilişkisi
Dilimleme işleci aslında slice() nesnesiyle beraber kullanılır:
a[baslangic:son:adim]
bu satır aşağıdakine eşdeğerdir:
a[slice(baslangic,son,adim)]
İndexleme Nasıl Çalışır?
Pozitif veya negatif sayılardan herhangi birini kullanabiliriz demiştik. Pozitif sayıların anlamı basit, ancak negatif sayılarda sondan geriye doğru sayarsınız:
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5
-6 -5 -4 -3 -2 -1