del Deyimi
15-2.11.45
del bir anahtar sözcüktür ve del ile veri yapılarından eleman silmek için
bir deyim, statement, oluştururuz. del deyimi sadece list veri yapılarında
değil değiştirilebilir yani mutable olan başka nesnelerde de kullanılabilir.
del deyimi ile bir listeden eleman silerken elemana indeksle erişiyormuş
gibi [] operatörü ile eşleriz. Örneğin:
>>> x = [1, 2, 3, 4, 5]
>>> del x[2]
>>> x
[1, 2, 4, 5]
Burada del deyimini kullanmak yerine list sınıfının pop() metodunu da
kullanabilirdik argüman vererek. Olmayan bir elemanı silmek istersek
IndexError exception oluşur.
>>> del x[200]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
del deyimi ile beraber yine negatif indeks semantiğini kullanabiliriz sanki
bir elemana erişiyormuş gibi.
del deyimi ile beraber dilimleme yani slicing semantiği ile silinecek birden
fazla eleman seçebiliriz. Bu durumda önce silinecek elemanlar seçilir ve
tek seferde silinir. Burada biraz atomik bir davranışa vurgu yapıyorum,
nedenini birazdan anlayacağız.
>>> x = [1, 2, 3, 4, 5, 6, 7]
>>> del x[1:6:2]
>>> x
[1, 3, 5, 7]
del ve ,
del deyimi ile , atomu ile ayrılmış birden fazla silme işlemi yapabiliriz.
Bu durumda silem işlemleri soldan sağa ve ayrı ayrı yapılmaktadır.
>>> x = [1, 2, 3, 4, 5, 6, 7]
>>> del x[2], x[3] # işlemler ayrı ayrı yapılıyor!
>>> x
[1, 2, 4, 6, 7]
Burada önce del x[2] ve daha sonra del x[3] yapılmaktadır. Ama ikinci
del işlemi yeni x listesi üzerinde yapıldığı için, 3 nolu indeks en başta
değeri 4 olan elemana denk geliyorken ilk silme işleminden sonra değeri 5
olan elemana denk gelmeketdir. Yukarıdaki dilimleme ile silme işlemi örneği
aksine burada bir atomik davranıştan söz edemiyoruz.
15-2.25.20